PHP - 简单 HTML Dom 解析器 - 500 服务器错误
我正在运行一个简单的 CentOS 5.5 服务器和 PHP 5.2.10。我正在尝试使用 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 错误日志中没有看到任何错误。所以我不确定到哪里去解决这个问题。 Simple HTML Dom 解析器的唯一 PHP 要求似乎是 PHP 5+(选中)和 php allow_url_fopen = On
(选中)。
I'm running a simple CentOS 5.5 server with PHP 5.2.10. I'm trying to use PHP Simple HTML Dom parser but I get a 500 Server Error. Here is the script:
<?php
include_once('simple_html_dom.php');
$html = file_get_html('http://www.google.com/');
As you can see, I'm not even doing anything with the parser yet except trying to open a url. And that file_get_html
is resulting in a 500 Server Error.
I don't see any errors showing up in the httpd error log. So I'm not sure where to look to figure out the problem. The only PHP requirements for Simple HTML Dom parser seem to be PHP 5+ (check) and php allow_url_fopen = On
(check).
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
根据 Vitor 的建议,我通过将 file_get_html 更改为 file_get_contents 解决了这个问题。由于我想使用 simple_html_dom 中的“查找”功能,因此我必须将字符串转换为对象:
Per Vitor's suggestion, I changed solved this problem by changing file_get_html to file_get_contents. Since I wanted to use the 'find' feature in simple_html_dom, I had to then convert the string to an object:
从5.2版本开始,如果出现致命错误,PHP将生成HTTP 500响应,并且display_errors关闭。打开查看错误,该错误停止了脚本的执行。也许文件未包含(错误的权限、路径)并且 file_get_html() 未定义,或者 file_get_html() 可能会产生致命错误。
Since version 5.2, PHP will generate HTTP 500 response if there is fatal error, and display_errors is off. Turn in on to see the error, that stops the execution of the script. Maybe file is not included (wrong permissions, path) and file_get_html() is not defined, or maybe file_get_html() produces a fatal error.
试试这个 file_get_contents
try this file_get_contents
也许是因为“php-mbstring”模块没有安装?您可以使用 ini_set('display_errors', 'On'); 来检查这一点。
maybe it's because the "php-mbstring" module did not installed ? you could using
ini_set('display_errors', 'On');
to check this out .