Как из html забрать ссылку и контент внутри тэга?

Есть текст
<p><span>В связи с временными ограничениями направляем пояснительные документы к Указам правительства Москвы и МО<br />Скачать файлы вы можете в СФМ в разделе&nbsp;<a href="http://test.com/announce/view?id=1" target="_blank" rel="noopener">рекламные материалы.</a></span></p>


Нужно из тега <a> достать ссылку и контент. То есть должен быть пример такой к тэгу a такой
рекламные материалы. (http://test.com/announce/view?id=1)


У меня получилось сделать наоборот

preg_replace('/<a(.*?)href=(["\'])(.*?)\\2(.*?)>/i', '($3) $5', $content)


Я получаю в ответ
<p><span>В связи с временными ограничениями направляем пояснительные документы к Указам правительства Москвы и МО<br />Скачать файлы вы можете в СФМ в разделе&nbsp;(https://sf.myataofficial.com/announce/view?id=360) рекламные материалы.</a></span></p>

Только не могу понять как заменить местами
  • Вопрос задан
  • 88 просмотров
Пригласить эксперта
Ответы на вопрос 1
rozhnev
@rozhnev Куратор тега PHP
Fullstack programmer, DBA, медленно, дорого
Можно использовать класс DOMDocument и функцию parse_url
<?php
$htmlstr = '<p><span>В связи с временными ограничениями направляем пояснительные документы к Указам правительства Москвы и МО<br />Скачать файлы вы можете в СФМ в разделе&nbsp;<a href="http://test.com/announce/view?id=1" target="_blank" rel="noopener">рекламные материалы.</a></span></p>';

$dom = new DOMDocument();

$dom->loadHTML($htmlstr);

$href = $dom->getElementsByTagName('a')[0]->getAttribute('href');

printf("href: %s", $href);

print_r(parse_url($href));


parse_url online
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы