如何更改php错误的错误输出?例如,如果是语法错误,或者服务器端超时,我想回显一条消息,允许用户刷新页面。
下面是我想添加错误信息的代码:
$XML->registerXPathNamespace('tree','www.tree.com'); <--occasionally errors here, so I want to output my own error message.
使用函数set_error_handler
定义一个自定义函数,以便在出现错误时调用。然后,您可以决定在该函数中对错误执行任何操作。
如果您只需要特定的持续时间,您可以在之后使用restore_error_handler
恢复它。
set_error_handler('yourHandler');
...
$XML->registerXPathNamespace('tree','www.tree.com');
...
restore_error_handler();
function yourHandler(int $errno , string $errstr) {
//show link to refresh page, whatever. full signature can be found on PHP manual page
}
好吧,快速检查php手册中的registerXPathNamespace显示它返回TURE
或FALSE
。这对我的解决方案是完美的。
if (!@$XML->registerXPathNamespace('tree','www.tree.com')) {
echo '<b>ERROR:</b> Could not register xml path. Please reload the page!';
}
不是说,如果返回FALSE,则显示消息。$XML前面的@
将禁用该操作可能导致的原始错误。