如何更改php错误的错误输出?例如,如果它的语法错误或服务器端超时,我想回显允许用户刷新页面的消息。
下面是我要将错误消息添加到的代码:
$XML->registerXPathNamespace('tree','www.tree.com'); <--occasionally errors here, so I want to output my own error message.
答案 0 :(得分:7)
使用函数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
}
答案 1 :(得分:-1)
好吧,快速检查registerXPathNamespace的php手册会显示它返回TURE
或FALSE
。这对我的解决方案来说是完美的。
if (!@$XML->registerXPathNamespace('tree','www.tree.com')) {
echo '<b>ERROR:</b> Could not register xml path. Please reload the page!';
}
不是这样,如果返回FALSE,则会显示该消息。 $ XML前面的@
将禁用该操作可能导致的原始错误。