Получить атрибут href ссылки на PHP

Регулярные выражения для парсинга HTML — не очень удобная штука. Лучше воспользоваться встроенным в PHP объектом DOM, он сделает Ваш код более простым, быстрым и надёжным:

$dom = new DOMDocument;
$dom->loadHTML($html);
foreach ($dom->getElementsByTagName(''a'') as $node) {
echo $dom->saveHtml($node), PHP_EOL;
}

Этот код выведет HTML-код всех ссылок, которые находятся в переменной $html.
Для работы с атрибутами есть следующие функции.

Проверить, существует ли атрибут href у Вашей ссылки:

if($node->hasAttribute( ''href'' )) {
// ...
}

Вывести значение атрибута href:

echo $node->getAttribute( ''href'' );

Изменить значение атрибута href:

$node->setAttribute(''href'', ''something else'');

Удалить атрибут href:

$node->removeAttribute(''href'');

А ещё можно работать с HTML-атрибутами непосредственно из XPath:

$dom = new DOMDocument;
$dom->loadHTML($html);
$xpath = new DOMXPath($dom);
$nodes = $xpath->query(''//a/@href'');
foreach($nodes as $href) {
echo $href->nodeValue;                       // выводим значение атрибута
$href->nodeValue = ''new value'';              // задаём новое значение атрибута
$href->parentNode->removeAttribute(''href'');  // удаляем атрибут
}
По вопросам рекламы ammmcru@yandex.ru
Adblock
detector