R
R
Ruslan Absalyamov2021-11-10 10:36:31
PHP
Ruslan Absalyamov, 2021-11-10 10:36:31

How to take the link and content inside the tag from html?

There is a text

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


<a>You need to get the link and content from the tag . That is, there should be an example like this for the tag a like this
рекламные материалы. (http://test.com/announce/view?id=1)


I managed to do the opposite

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


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

I just can't figure out how to replace

Answer the question

In order to leave comments, you need to log in

2 answer(s)
V
Viktor Taran, 2021-11-10
@rusline18

https://regex101.com/r/25ItdB/1

S
Slava Rozhnev, 2021-11-10
@rozhnev

You can use the DOMDocument class and the parse_url function

<?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

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question