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. Так что я не уверен, где искать, чтобы выяснить проблему. Единственными требованиями PHP для синтаксического анализатора Simple HTML Dom являются PHP 5+ (проверьте) и php allow_url_fopen = On (проверьте).


person Jake Wilson    schedule 31.08.2011    source источник
comment
там есть закрывающий тег, верно?   -  person IOrlandoni    schedule 31.08.2011
comment
включите display_errors в вашем php.ini. Может файл не вставлен?   -  person Maxim Krizhanovsky    schedule 31.08.2011
comment
@OhCaN - закрывающие теги php не нужны для файлов .php, если после них нет кода, отличного от php.   -  person Jake Wilson    schedule 01.09.2011
comment
@Darhazer - у тебя был правильный подход. Мой был выключен. Дайте правильный ответ ниже, и я обязательно отдам вам должное.   -  person Jake Wilson    schedule 01.09.2011


Ответы (4)


Начиная с версии 5.2, PHP будет генерировать ответ HTTP 500, если произойдет фатальная ошибка, а display_errors отключен. Включите, чтобы увидеть ошибку, которая останавливает выполнение скрипта. Возможно, файл не включен (неправильные права доступа, путь) и file_get_html() не определен, или, возможно, file_get_html() выдает фатальную ошибку.

person Maxim Krizhanovsky    schedule 01.09.2011

попробуйте это file_get_contents

person Vitor Furlanetti    schedule 31.08.2011

может быть, это потому, что модуль «php-mbstring» не установлен? вы можете использовать ini_set('display_errors', 'On');, чтобы проверить это.

person Unayung Chen    schedule 07.02.2012

По предложению Витора я решил решить эту проблему, изменив 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
person Brett James    schedule 11.08.2012