小编Sto*_*ped的帖子

使用PHPMailer处理错误

我正在尝试将PHPMailer用于一个小项目,但我对使用该软件进行错误处理感到困惑.希望有人有经验.当我设置电子邮件时,我使用:

$result = $mail->Send();

if(!$result) {
    // There was an error
    // Do some error handling things here
} else {
    echo "Email successful";
}
Run Code Online (Sandbox Code Playgroud)

哪个工作正常,或多或少.问题是当出现错误时,PHPMailer似乎也将错误消除了,所以如果出现问题,它只是将该信息直接发送到浏览器,基本上打破了我试图做的任何错误处理.

有没有办法让这些消息沉默?它没有抛出异常,只是打印出错误,在我的测试用例中是:

invalid address: @invalid@email You must provide at least one recipient email address.
Run Code Online (Sandbox Code Playgroud)

它意味着是一个错误,但它应该驻留在$ mail-> ErrorInfo; 没有被软件回应.

php phpmailer

43
推荐指数
5
解决办法
17万
查看次数

如何查看准备好的声明的内容?

我正在努力学习在PHP中使用mysqli的预处理语句,通常,如果我遇到查询问题,我只需将它回显到屏幕上,看看它的第一步看起来是什么样子.

如何用准备好的声明做到这一点?

我希望在替换变量后看到SQL语句.

php mysql mysqli

21
推荐指数
3
解决办法
3万
查看次数

如何在没有框架的情况下将点击绑定到锚点(javascript)

我知道这很容易在jQuery或任何其他框架中完成,但这不是重点.如何在纯JavaScript中"正确"绑定点击事件?我知道怎么做内联(我知道这很可怕)

<a href="doc.html" onclick="myFunc(); return false">click here</a>
Run Code Online (Sandbox Code Playgroud)

这导致我的javascript为一个支持JS的浏览器执行,并且链接为没有javascript的人正常运行?

现在,我如何以非内联方式执行相同的操作?

javascript events

16
推荐指数
4
解决办法
3万
查看次数

上周一 - 周日的日期:有更好的方法吗?

我正准备查询mySQL以获取前一周的记录,但我必须将周视为周一至周日.我原来是这样做的:

WHERE YEARWEEK(contactDate) = YEARWEEK(DATE_SUB(CURDATE(),INTERVAL 7 DAY))
Run Code Online (Sandbox Code Playgroud)

发现mySQL将周视为周日 - 周一.所以我正在解析在php中获取开始和结束日期,如下所示:

$i = 0; 
while(date('D',mktime(0,0,0,date('m'), date('d')-$i, date('y'))) != "Mon") { 
  $i++; 
}

$start_date = date('Y-n-j', mktime(0,0,0,date('m'), date('d')-($i+7), date('y')));
$end_date  = date('Y-n-j', mktime(0,0,0,date('m'), date('d')-($i+1), date('y')));
Run Code Online (Sandbox Code Playgroud)

这是有效的 - 它获得当周的星期一(向后走,直到星期一被击中)然后根据该日期计算前一周的日期.

我的问题是:有更好的方法吗?看起来很草率,我希望那里有人可以给我一个更干净的方法 - 或许不是因为我需要周一 - 周日周.

编辑

显然,有:

$start = date('Y-m-d',strtotime('last monday -7 days'));
$end   = date('Y-m-d',strtotime('last monday -1 days'));
Run Code Online (Sandbox Code Playgroud)

这大约是可读性的一百万倍.谢谢.

php mysql datetime

15
推荐指数
3
解决办法
2万
查看次数

MySQL按计算排序

是否可以在mySQL中对2行进行排序?例如,我有2个排,lpap我想要做这样的事情:

SELECT * from myTbl WHERE 1 ORDER BY (lp/ap)
Run Code Online (Sandbox Code Playgroud)

哪个不是抛出错误,但它也没有按计算结果排序.有没有办法做到这一点,还是我必须在数据库中存储lp/ap?

mysql sorting

9
推荐指数
2
解决办法
1万
查看次数

在1.4中通过jquery设置选择标签

在jquery 1.3.2中,以下工作:

<select id="c">
  <option value="325">Red</option>
  <option value="833">Purple</option>
</select>

$('#c').val('Red');
Run Code Online (Sandbox Code Playgroud)

并且它将选项更改为选项,并将RED作为其标签.在jQuery 1.4中,这失败了.如何在1.4中获得相同的结果?这是1.3版本中的错误吗?

jquery

6
推荐指数
1
解决办法
3754
查看次数

如何在PHP中向对象添加方法?

我有一个面向对象的库我想添加一个方法,虽然我很确定我可以进入该库的源并添加它,我想这就是通常所说的坏主意.

我如何正确地将自己的方法添加到PHP对象?

更新 **编辑**

我试图添加一个方法的库是simpleHTML,没什么特别的,只是一种提高可读性的方法.所以我尝试添加到我的代码中:

class simpleHTMLDOM extends simple_html_dom {
  public function remove_node() {
    $this->outertext = "";
  }
}
Run Code Online (Sandbox Code Playgroud)

这让我:Fatal error: Call to undefined method simple_html_dom_node::remove_node().很明显,当你在simpleHTML中获取一个元素时,它返回一个类型为simple_html_dom_node的对象.

如果我将方法添加到simple_html_dom_node我的子类不是由simpleHTML创建的...那么坚持下一步去哪里.

php oop class

4
推荐指数
1
解决办法
474
查看次数

使用特殊字符解析XML(UTF-8)

我开始使用一些看起来像这样的XML(简化):

<?xml version="1.0" encoding="UTF-8"?>
<alldata>
   <data name="Forsetì" />
</alldata>
</xml>
Run Code Online (Sandbox Code Playgroud)

但是在我用simplexml_load_string特殊字符(i)解析之后,它变得ì非常明显.

有没有办法防止这种情况发生?

我知道XML很好,当保存为.txt并在浏览器中查看时,字符很好.当我在XML上使用simplexml_load_string然后将值保存为文本文件或数据库时,它会被破坏.

php xml encoding utf-8

4
推荐指数
1
解决办法
1万
查看次数

PHP:使用方法作为回调

我试图使用array_walk_recursive某些东西,并希望使用其中一个类'方法作为回调,所以尝试:

  array_walk_recursive($TAINTED, "$this->encode()");
Run Code Online (Sandbox Code Playgroud)

其变化都失败了.我最终安顿下来:

array_walk_recursive($TAINTED, 'className::encode');
Run Code Online (Sandbox Code Playgroud)

这是有效的,但我在这里读到,以这种静态方式调用类方法通常被认为是不好的做法.或者这是必要的情况之一?

那么,这是正确的方法吗,还是有办法放入回调函数而不必依赖它作为静态类方法?

php oop

4
推荐指数
1
解决办法
2635
查看次数

使用DOM方法处理AJAX响应

我正在通过AJAX检索整个HTML文档 - 这很好.但我需要提取该文档的某些部分并使用它们进行操作.

使用框架(jquery,mootools等)不是一种选择.

我能想到的唯一解决方案是使用正则表达式获取HTML文档的正文(是的,我知道,很糟糕),即.<body>(.*)</body>将它放入隐藏元素中的当前页面的DOM中,并从那里开始使用它.

有更简单/更好的方法吗?

更新

我已经完成了一些测试,并且在我测试的浏览器中,将整个HTML文档插入到创建的元素中的行为有点不同.例如:

  • FF3.5:保留HEAD和BODY标签的内容
  • IE7/Safari4:只包括...之间的内容
  • Opera 10.10:保留HEAD及其中的所有内容,保留BODY的内容

IE7和Safari的行为是理想的,但不同的浏览器以不同的方式做这件事.由于我正在加载一个预定的HTML文档,我想我将使用regEx来获取我想要的内容并将其插入到DOM元素中 - 除非有人有其他建议.

javascript dom

3
推荐指数
1
解决办法
152
查看次数

标签 统计

php ×6

mysql ×3

javascript ×2

oop ×2

class ×1

datetime ×1

dom ×1

encoding ×1

events ×1

jquery ×1

mysqli ×1

phpmailer ×1

sorting ×1

utf-8 ×1

xml ×1