替换文件中的所有链接

时间:2012-01-19 19:19:52

标签: php replace preg-replace

我需要一些帮助。 我有一个巨大的PHP文档,其中包含很多链接。 我需要用#替换链接 例如:

Original link: text....<a href="orig-link"> Link text </a> other text .....


How i need it be:  text....<a href="#"> Link text </a> other text .....

所以我只需要更改链接,链接文本等应保持不变。

感谢您的阅读。

2 个答案:

答案 0 :(得分:4)

当没有其他属性时:

$string = preg_replace('~<a href="[^"]+">~', '<a href="#">', $string); 

否则:

$string = preg_replace('~<a ([^>]*)href="[^"]+"([^>]*)>~', '<a \\1href="#"\\2>', $string); 

演示:

php > $string = 'text....<a asd="blub" href="orig-link" title="bla"> Link text </a> other text .....';
php > echo preg_replace('~<a ([^>]*)href="[^"]+"([^>]*)>~', '<a \\1href="#"\\2>', $string);
text....<a asd="blub" href="#" title="bla"> Link text </a> other text .....

答案 1 :(得分:0)

尝试以下方法:

$str = 'Original link: text....<a href="orig-link"> Link text </a> other text .....';
$newstr = preg_replace('/(href=.)[^"]+/', '$1#', $str);
echo $newstr;

输出结果为:

Original link: text....<a href="#"> Link text </a> other text .....