【发布时间】:2010-04-15 20:31:49
【问题描述】:
我想获取一串文本并找到所有超链接标签,获取它们的 href 值,然后将整个超链接标签替换为 href 属性的值。
【问题讨论】:
我想获取一串文本并找到所有超链接标签,获取它们的 href 值,然后将整个超链接标签替换为 href 属性的值。
【问题讨论】:
许多可能性。例如。通过使用DOM extension、DOMDocument::loadhtml() 和XPath(尽管在这种情况下 getElementsbyTagName() 就足够了)。
<?php
$string = '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd"><html><head><title>...</title></head><body>
<p>
mary had a <a href="little">greedy</a> lamb
whose fleece was <a href="white">cold</a> as snow
</p>
</body></html>';
$doc = new DOMDocument;
$doc->loadhtml($string);
$xpath = new DOMXPath($doc);
foreach( $xpath->query('//a') as $a ) {
$tn = $doc->createTextNode($a->getAttribute('href'));
$a->parentNode->replaceChild($tn, $a);
}
echo $doc->savehtml();
打印
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head><title>...</title></head>
<body><p>
mary had a little lamb
whose fleece was white as snow
</p></body>
</html>
【讨论】: