将php错误输出更改为链接自定义消息

问题描述:

如何更改php错误的错误输出?例如,如果它的语法错误或服务器端超时,我想回显一条允许用户刷新页面的消息。将php错误输出更改为链接自定义消息

继承人的代码,我想补充我的错误消息:

$XML->registerXPathNamespace('tree','www.tree.com'); <--occasionally errors here, so I want to output my own error message. 
+1

您将无法捕捉到语法/致命错误。 –

使用功能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表明,它返回TUREFALSE。这对我的解决方案是完美的。

if ([email protected]$XML->registerXPathNamespace('tree','www.tree.com')) { 
    echo '<b>ERROR:</b> Could not register xml path. Please reload the page!'; 
} 

不是这样,如果它返回FALSE,那么将显示消息。而$ XML前面的@将禁用该操作可能导致的原始错误。

+0

你仍然需要关闭错误报告 – NSjonas

+0

@NSjonas为什么?它不会产生错误。 –

+0

错误是有很好的理由,最好在每个虚拟主机的基础上,而不是直接在代码内部打开/关闭。这将使您能够拥有测试和生产服务器。 – feeela