Заменить все ссылки в файле - PullRequest
1 голос
/ 19 января 2012

мне нужна помощь.У меня есть огромный документ 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 ]

4 голосов
/ 19 января 2012

Когда нет других атрибутов:

$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 .....
0 голосов
/ 19 января 2012

Попробуйте следующее:

$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 .....
...