PHP: как извлечь все ссылки из документа
Если действительно нужно это сделать, то, как и любое другое содержимое, ссылки из внешнего URL удобней всего получить через класс DOMDocument
. Он доступен в стандартной сборке PHP5.
Приведём маленький пример, который получает содержимое с гипотетического URL
'http://'.MY_HOST.'/index.php'
(адрес хоста MY_HOST
задаётся константой), организует цикл для
просмотра всех ссылок с этого URL и печатает их. Если атрибут target
ссылки непуст,
он дополнительно выводится через запятую после адреса ссылки.
<?php define("MY_HOST", "www.myhost.com"); $doc = new DOMDocument(); @$doc->loadHTMLFile('http://'.MY_HOST.'/index.php'); $links = $doc->getElementsByTagName("a"); for ($i = 0; $i < $links->length; $i++) { //Цикл по всем ссылкам echo '<br>'.$links->item($i)->getAttribute("href"); $t=$links->item($i)->getAttribute("target"); if (!empty($t)) echo ', '.$t; } ?>
Для работы со ссылками текущего документа применять PHP не требуется, достаточно использовать
Javascript-свойство document.links
, пример можно посмотреть, скажем, в исходнике этого моего старого скрипта.
07.08.2011, 14:52 [11383 просмотра]