Выполняю такой простейший код на PHP (ищу все ячейки всех таблиц) в файле 1.html:
$f = file_get_contents("1.html");
$dom = DOMDocument::loadHtml($f);
$node = $xpath->query("//td");
echo "найдено " . $node->length . " ячеек таблиц";
Если запускаю код на локальном сервере, то получаю результат: найдено 832 ячейки во всём документе; если же запускаю код на рабочем сервере, то получаю результат: найдено 0 ячеек.
На других документах XPath работает без проблем. В чём может быть проблема.
Примечание:
На локальном и на боевом сервере парсеру посовывается один и тот же файл 1.html, выполняется один и тот же код, но результат получается разный!
Примечание:
Интересно, что любые другие файлы обрабатываются одинаково на локальном и рабочем сервер (скрипт находит одинаковое количество элементов).
Примечание:
Пробовал менять кодировку файла - не помогло.
Примечание:
Я разобрался. Оказывается, проблема была в том, что внутри HTML-страницы был символ Chr(03), на который ругался XPath. Я удалил этот символ из тела страницы и на боевом сервере всё заработало. Интересно, что на домашнем сервере всё работало и с этим символом.
Примечание:
Полночи занимался сексом с этой HTML-страницей. Проблема была в символе Chr(03).
Примечание:
NetRain, спасибо за совет!
RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.
Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.
Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.