我希望用数字符号 (#) 替换某些 HTML 中的所有链接 url。
以下基本上是有效的,但是令我沮丧的是,它在修改后的 HTML 周围插入了<!DOCTYPE>
、<html>
和标记。<body>
是否可以防止插入这些标签?有一个更好的方法吗?
谢谢
$html_with_urls = '<p>hello. Here is a <a href="http://somesite.com">link</a>. Goodby</p>';
libxml_use_internal_errors(true); //Temorarily disable errors resulting from improperly formed HTML
$doc = new DOMDocument();
$doc->loadHTML($html_with_urls);
$a = $doc->getElementsByTagName('a');
foreach ($a as $link) {
if ($link->hasAttribute('href')) {
$link->setAttribute('href', '#');
}
}
$html_without_urls = $doc->saveHTML();
libxml_use_internal_errors(false);
echo($html_with_urls . '<br />' . $html_without_urls);