【问题标题】:Replacing link in a href tag by php用php替换href标签中的链接
【发布时间】:2014-02-02 14:40:22
【问题描述】:
我有类似的链接
<a href="#GGGGGGG31321">LINK TEXT</a>
<a href="#zzzz313GG31321">LINK TEXT 2</a>
...
注意! # begin 中的符号很重要,因为我有另一个链接我不想更改的内容
我如何用 php 替换它:
<a href="#">LINK TEXT</a>
<a href="#">LINK TEXT 2</a>
或者更好的方法是我可以保留链接文本,但完全删除 href 标签
谢谢!
【问题讨论】:
标签:
php
replace
preg-replace
str-replace
【解决方案1】:
试试这个正则表达式
<?php
$vv='<a href="#GGGGGGG31321">LINK TEXT</a>
<a href="#zzzz313GG31321">LINK TEXT 2</a>';
$vv=preg_replace('/<a(.*)href="([^"]*)"(.*)>/','<a$1href="#"$3>',$vv);
echo $vv;
?>
测试和工作
【解决方案2】:
我认为这会奏效:
preg_replace( '/<a\shref=\".*\">(.+<\/a>)/', '<a>$1', $linkTag );
它应该删除整个href 标签。
【解决方案3】:
<?php
$string = '<a href="#GGGGGGG31321">LINK TEXT</a><a href="#zzzz313GG31321">LINK TEXT 2</a>';
$regex = '/<a\\shref=".*?">(.*?)<\\/a>/is';
echo preg_replace($regex, '<a>$1</a>', $string);
?>
这会返回:
<a>LINK TEXT</a>
你说的可能我没听懂
或者更好的方法是我可以保留链接文本,但完全删除 href 标签
但希望它会有所帮助。
【解决方案4】:
怎么样:
preg_replace('/\bhref="#[^"]+"/', 'href="#"', $string)