【问题标题】:PHP - Simple HTML Dom parser - 500 Server ErrorPHP - 简单的 HTML Dom 解析器 - 500 服务器错误
【发布时间】:2011-08-31 17:31:00
【问题描述】:

我正在使用 PHP 5.2.10 运行一个简单的 CentOS 5.5 服务器。我正在尝试使用 PHP Simple HTML Dom 解析器,但出现 500 服务器错误。这是脚本:

<?php
include_once('simple_html_dom.php');
$html = file_get_html('http://www.google.com/');

如您所见,除了尝试打开一个 url 之外,我什至没有对解析器做任何事情。 file_get_html 会导致 500 服务器错误。

我没有在 httpd 错误日志中看到任何错误。所以我不确定在哪里寻找问题。简单 HTML Dom 解析器的唯一 PHP 要求似乎是 PHP 5+(检查)和 php allow_url_fopen = On(检查)。

【问题讨论】:

  • 那里有一个结束标签,对吧?
  • 在您的 php.ini 中将 display_errors 设置为 on。也许该文件不包括在内?
  • @OhCaN - .php 文件不需要关闭 php 标记,只要它后面没有非 php 代码。
  • @Darhazer - 你有正确的方法。我的设置为关闭。在下面给出正确的答案,我一定会给予你信任。

标签: php apache centos simple-html-dom


【解决方案1】:

从 5.2 版本开始,如果出现致命错误,PHP 将生成 HTTP 500 响应,并且 display_errors 是关闭的。打开以查看错误,该错误会停止脚本的执行。可能没有包含文件(错误的权限、路径)并且没有定义 file_get_html(),或者可能是 file_get_html() 产生了致命错误。

【讨论】:

    【解决方案2】:

    试试这个file_get_contents

    【讨论】:

      【解决方案3】:

      可能是因为“php-mbstring”模块没有安装?你可以使用ini_set('display_errors', 'On'); 来检查一下。

      【讨论】:

        【解决方案4】:

        根据 Vitor 的建议,我通过将 file_get_html 更改为 file_get_contents 解决了这个问题。由于我想在 simple_html_dom 中使用“查找”功能,因此我必须将字符串转换为对象:

        $string = file_get_contents(http://thedeadfallproject.com/)
        $object = new simple_html_dom();
        $object->load($string); // Load HTML from a string
        

        【讨论】:

          猜你喜欢
          • 2016-03-11
          • 2018-02-23
          • 2019-05-17
          • 1970-01-01
          • 2012-01-17
          • 1970-01-01
          • 1970-01-01
          • 2015-02-14
          相关资源
          最近更新 更多