3 回答
TA贡献1873条经验 获得超9个赞
您可以使用安装临时错误处理程序 set_error_handler
class ErrorTrap {
protected $callback;
protected $errors = array();
function __construct($callback) {
$this->callback = $callback;
}
function call() {
$result = null;
set_error_handler(array($this, 'onError'));
try {
$result = call_user_func_array($this->callback, func_get_args());
} catch (Exception $ex) {
restore_error_handler();
throw $ex;
}
restore_error_handler();
return $result;
}
function onError($errno, $errstr, $errfile, $errline) {
$this->errors[] = array($errno, $errstr, $errfile, $errline);
}
function ok() {
return count($this->errors) === 0;
}
function errors() {
return $this->errors;
}
}
用法:
// create a DOM document and load the HTML data
$xmlDoc = new DomDocument();
$caller = new ErrorTrap(array($xmlDoc, 'loadHTML'));
// this doesn't dump out any warnings
$caller->call($fetchResult);
if (!$caller->ok()) {
var_dump($caller->errors());
}
TA贡献1772条经验 获得超6个赞
呼叫
libxml_use_internal_errors(true);
用...处理之前 $xmlDoc->loadHTML()
这告诉libxml2 不要向PHP 发送错误和警告。然后,要检查错误并自己处理它们,您可以在准备好时查阅libxml_get_last_error()和/或libxml_get_errors()。
- 3 回答
- 0 关注
- 614 浏览
相关问题推荐
添加回答
举报