php - 如何找到字符串中的所有 HTML 超链接标记并将它们替换为它们的 href 值?

标签 php html hyperlink

我想获取一串文本并找到所有超链接标记,获取它们的 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>

关于php - 如何找到字符串中的所有 HTML 超链接标记并将它们替换为它们的 href 值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2645101/

相关文章:

php - Vagrant 家园缓慢

php - 为用户公开个人资料创建隐私设置

html - 链接到本地​​磁盘

ios - uitableview 页脚中的超链接

php - mysql版本更新中Moodle配置错误

php - %5B% 和 %5B0% 之间的区别?

javascript - 添加绝对超链接 URL

javascript - 下拉选择导致自动水平滚动

javascript - Jquery在页面重定向后执行鼠标点击

html - 如何建立指向本地可执行文件的超链接?