Отправка сообщения






Добро пожаловать!

Получение всех ссылок на странице с помощью класса DOMDocument

Ранее в нашем блоге уже был пост о том, как извлечь все ссылки из веб-страницы, отбор ссылок в том примере производился с помощью регулярных выражений. Сейчас мы рассмотрим другой пример, как можно получить ссылки со страницы посредством использования класса DOMDocument.

Класс DOMDocument находится в расширении DOM для PHP, начиная с версии PHP5. Класс представляет все содержимое HTML или XML документа, говоря простым языком, служит в качестве корня дерева документа.

Давайте приступим к примеру. Рассмотрим функцию, которая наглядно демонстрирует простоту и удобство использования класса DOMDocument:

// функция получает все ссылки из документа
// $link - ссылка на документ
function get_links($link)
{
    // сюда будем помещать результат
    $ret = array();
     
    // создаем новый объект класса
    $dom = new domDocument;
     
    // получаем контент
    @$dom->loadHTML(file_get_contents($link));
     
    // убираем пробелы
    $dom->preserveWhiteSpace = false;
     
    // извлекаем все теги ссылок
    $links = $dom->getElementsByTagName('a');
     
    // получаем значение артибута href для всех ссылок
    foreach ($links as $tag)
    {
        $ret[$tag->getAttribute('href')] = $tag->childNodes->item(0)->nodeValue;
    }
     
    return $ret;
}

После того как была описана функция, рассмотрим как можно обращаться к ней:

// ссылка на страницу, где будем собирать ссылки
$link = "http://www.php.net";
 
// обращаемся к нашей функции
$urls = get_links($link);
 
// проверяем результат
if(sizeof($urls) > 0)
{
	// выводим в цикле
	foreach($urls as $key=>$value)
	{
		echo $key . ' - '. $value . '<br >';
	}
}
else
{
	echo "Не удалось получить ссылки на странице $link";
}
Добавил: htmaker, 01.08.2015 г.
 
плохослабосойдетхорошоотлично (Еще не оценили)
Загрузка...

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Форум на разные темы - digital-planet.info

Комментарии

  • Загрузка...

Наверх