如何在HTML中查找链接并将其删除?
$html = '<p><a href="javascript:doThis('Test Title 1')">Test Title 1</a></p>';
$html .= '<p><a href="javascript:doThis('Test Title 2')">Test Title 2</a></p>';
$html .= '<p><a href="javascript:doThis('Test Title 3')">Test Title 3</a></p>';
$match = '<a href="javascript:doThis('Test Title 2')">';
我想删除锚点但显示文本。见下文。
测试题目2
我之前从未使用过正则表达式,但也许我也可以避免使用它。如果我不清楚,请告诉我。
由于
标记
编辑:它不是客户端的事情。我不能用这个javascript。我有一个自定义CMS,想要编辑存储在数据库中的HTML。答案 0 :(得分:4)
你可以尝试最简单的事情:
echo strip_tags($html, '<p>');
除了&lt; p&gt;
之外,它会删除所有标签如果你真的喜欢regexp:
echo preg_replace('=</?a(\s[^>]*)?>=ims', '', $html);
编辑:
删除 - 标记和周围标记(代码变得混乱,不适用于损坏的(X)HTML):
echo preg_replace('=<([a-z]+)[^>]*>\s*<a(\s[^>]*)?>(.*?)</a>\s*</\\1>=ims', '$3', $html);
如果您的问题很复杂,我建议您尝试xpath。
答案 1 :(得分:3)
您可以看到Simple HTML DOM是否有效。
答案 2 :(得分:1)
你可能会对Beautiful Soup感到高兴 - http://www.crummy.com/software/BeautifulSoup/(Python HTML解析/操作API)
答案 3 :(得分:0)
您可以使用
var foo = document.getElementsByTagName('a');
获取所有链接标记。这里不需要正则表达式......
答案 4 :(得分:0)
sed -i -e 's/<a.*<\/a>//g' filename.html
请注意,使用正则表达式来破解HTML是一个......可疑的命题,但它可能只是在实践中起作用; - )
答案 5 :(得分:0)
在Microsoft Expression中打开HTML文件。 按Ctrl + F,然后选择替换标签或标签属性内容 简单快捷的解决方案 谢谢 Shomaail