代码之家  ›  专栏  ›  技术社区  ›  DisgruntledGoat

PHP的XML解析函数存在未知问题

  •  0
  • DisgruntledGoat  · 技术社区  · 14 年前

    我使用的是SimpleXML的PHP4实现,它使用内置的 xml_* 我有一个奇怪的问题,由于 无法打开错误报告 .

    [stuff here to initialise the parser]
    echo '<textarea rows="8" cols="50">', htmlspecialchars($this->xml), '</textarea>';
    $parsed = xml_parse($this->parser, $this->xml) or die('error with xml_parse function');
    

    textarea可以很好地显示XML,而XML本身是完全有效的。但是页面在那之后就停止了,似乎没有调用 xml_parse

    还应该补充一点,这在其他页面上工作得很好,只是因为某些原因,这个特定页面似乎有问题。

    这里会发生什么?还有其他方法来调试这个吗?

    4 回复  |  直到 14 年前
        1
  •  0
  •   Mike Sherov    14 年前

    是的,您可以通过将以下内容添加到脚本来调试:

    error_reporting(E_ALL);
    

    另外,只有在函数调用返回假值之前,使用或死才有效。在发生致命错误的情况下,这是没有帮助的。

        2
  •  0
  •   Sarfraz    14 年前

    ini_set('display_errors', true);
    error_reporting(E_ALL);
    
        3
  •  0
  •   Pekka    14 年前

    尝试获取特定于XML的分析器错误消息:

    echo xml_error_string(xml_error_code($parser));
    

    IIRC,不管错误报告设置为什么,默认情况下这些都不会输出。

        4
  •  0
  •   DisgruntledGoat    14 年前

    这个问题似乎是因为XML对于解析器来说太大了。由于无法打开错误报告,因此无法获得正确的调试信息。

    我决定使用一个单独的脚本来生成页面的HTML,以避免页面偶尔出现问题。