PHP regex: как преобразовать строку HTML со ссылками в обычный текст, который показывает URL-адрес после текста в скобках

Я ищу способ в PHP (с регулярным выражением, может быть?), Чтобы преобразовать строку HTML, которая включает ссылки в строку простого текста, которая добавляет URL-адрес ссылки после текста.

Вот пример того, что я думаю:

$html = '<p><a href="http://www.example.com/maybe/something/here/">Link name</a> for something or another. <a href="https://www.examplesecure.com/">Another link </a> to something else.</p>' // Regex to find the URLs ???? // Add the found URLs as strings after the closing a tags ???? // Convert to plain text $text = trim(strip_tags($html)); 

В идеале, я бы закончил с этой строкой:

 Link name [http://www.example.com/maybe/something/here/] for something or another. Another link [https://www.examplesecure.com/] to something else. 

Solutions Collecting From Web of "PHP regex: как преобразовать строку HTML со ссылками в обычный текст, который показывает URL-адрес после текста в скобках"

Используйте SimpleXMLelemnt для этого:

  $htmlString = '<div><p><a href="/page">some text</a><non-standart-tag><a href="/page-2">more text</a></non-standart-tag>'; libxml_use_internal_errors(true); //suppress errors when importing invalid HTML $dom = new DOMDocument(); $dom->loadHTML($htmlString); $xpath = new DOMXPath($dom); $links = []; $linksAsString = ''; foreach ($xpath->query('//a') as $linkElement){ /** * @var DOMElement $linkElement */ $link = [ 'href' => $linkElement->getAttribute('href'), 'text' => $linkElement->textContent ]; $links[] = $link; $linksAsString .= $link['text'] . "[{$link['href']}] "; } libxml_clear_errors(); var_dump($links); echo $linksAsString;