Вообщем я пишу поискового робота, который заходит на страницы сайта и копирует его сылки, т.е. составляет дерево страниц сайта. Вообщем все уже работает, боле-менее, но есть сайты на xhtml, например, тот же - джон, которые мой робот не читает: не file(), не readfile(), не file get contents() , не curl - не могут прочитать, а возвращает ошибку. Вообщем, может кто нибудь сталкивался с такой проблемой, можете написать простой пример парсинга xhtml, чтобы программа возвращала результат? заранее спасибо, надеюсь на вашу помощь)
Dmitriy12,
$dom = new DOMDocument();
$dom->loadHTML(file_get_contents('http://site.ru'));
print_r($dom->getElementByTagName('a'));
Folour (25.02.2013 / 20:12)
Dmitriy12, $dom = new DOMDocument();
$dom->loadHTML(file_get_contents('http://site.ru'));
print_r($dom->getElementByTagName('a'));
Спасибо, а domdocument - эту библиотеку надо отдельно устанавливать?
Dmitriy12, DOMDocument в РНР из коробки.
Dmitriy12, это расширение включено по умолчанию
для корректной работы необходима libxml
но она обычно тоже изкаропки есть
Другое дело что domdocument уж сильно придирчив к вёрстке страниц. Если ему подсунуть страничку с кривой вёрсткой, то он откажеться её обрабатывать и выдаст ошибку.
Folour (25.02.2013 / 20:12)
Dmitriy12, $dom = new DOMDocument();
$dom->loadHTML(file_get_contents('http://site.ru'));
print_r($dom->getElementByTagName('a'));
Интерпритатор вывел ошибку: Fatal error: Call to underfined function AnewA domdocument() in (...) line 2
Даже не знаю с чем связано...
ОМГ, ты как скопировал то, там такой функции и в помине нет.
Folour (25.02.2013 / 20:47)
ОМГ, ты как скопировал то, там такой функции и в помине нет.
он на 2 строчку ругается:
$dom = new DOMdocument();
Dmitriy12, Ну блин, ты сам смотри, во второй строчке идет инициализация класса, а у тебя пишет что функция не существует, и вместо пробелов у тебя буква А, по-этому вместо new DOMDocument(); вызывается AnewAdomdocument();
Я хз что у тебя с пыхом, но он явно работает не так как надо.