如何捕获死掉的PHP脚本错误(Perl有eval)?

时间:2009-12-15 17:07:26

标签: php error-handling

我有一个在我们的开发服务器上工作正常但在客户端服务器上死掉的脚本。

error_reporting(E_ALL);
if (function_exists('simplexml_load_file')) echo "function exists";
if (file_exists('test.xml'))
{
echo("<hr>just about to read local xml file :".__LINE__); 
$xml = simplexml_load_file('test.xml');   // dies here

在Perl中,您可以使用eval捕获此类错误,PHP中是否存在等效的内容?

2 个答案:

答案 0 :(得分:0)

取决于函数失败的方式。

如果是simplexml_load_file(),则错误信息为well documented

  

出错时,它将返回FALSE。

  

生成E_WARNING错误消息   对于XML数据中发现的每个错误。

  

提示

     

使用libxml_use_internal_errors()   抑制所有XML错误,并且   libxml_get_errors()迭代   他们之后。

而且,您可以随时set your own error handler或使用(麻烦)error suppression operator

答案 1 :(得分:0)

系统管理员: - 我简要地打开了详细的错误报告,然后回复:

致命错误:无法克隆类SimpleXMLElement的对象

中的'zend.ze1_compatibility_mode'

http://archives.devshed.com/forums/php-108/simplexml-problem-982459.html

可以使用a在每个站点上覆盖此配置 .htaccess文件指令 http://www.activecollab.com/forums/topic/616/

  这解决了这个问题。但为什么我不能在我的脚本中打开这种级别的错误报告?