Есть такой код:
<?php
$content = '<a href="[[~999]]">ссылка</a>';
// Исправляем ошибки кодировки
$content = mb_convert_encoding($content, 'HTML-ENTITIES', 'UTF-8');
$dom = new DOMDocument;
// ВАЖНО! Добавляем fakeroot (тег div), так как без него иногда может ломаться верстка. Подробнее: https://stackoverflow.com/questions/39479994/php-domdocument-savehtml-breaks-format .
$dom->loadHTML('<div>' . $content . '</div>', LIBXML_HTML_NOIMPLIED | LIBXML_HTML_NODEFDTD);
$root = $dom->documentElement;
$links = $dom->getElementsByTagName('a');
foreach ($links as $link) {
$href = $link->getAttribute('href');
$href = urldecode($href);
$link->setAttribute('href', $href);
$link->setAttribute('data-href', $href);
$test = $dom->saveHTML($link);
echo $test;
break;
}
В итоге выводится такое значение:
<a href="%5B%5B~999%5D%5D" data-href="[[~999]]">ссылка</a>
Можно ли сделать так, чтобы href был такой же, как data-href? Как это сделать?