Я ищу способ в 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.
Используйте 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;