一部の 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);