Не нравятся результаты поиска? Попробуйте другой поиск!
DLE FAQ » Стол заказов » Составить регулярное выражение preg_replace для добавления атрибута class внутри блока [noleech]

Составить регулярное выражение preg_replace для добавления атрибута class внутри блока [noleech]


 adaptec    08.03.2015    Стол заказов    1474    2 комментария

Есть блок с ссылками, ко всем ссылкам внутри тега noleech должны добавляться атрибуты class="link"
[noleech]
<a href="example.com">example.com</a>
<a href="example.org">example.org</a>
<a href="example.net">example.net</a>
[/noleech]

На данный момент регулярка выглядит так:
$content = preg_replace ( '#\[noleech\](.*)href(.*)\[/noleech\]#ism', '$1class="link" href$2', $content );

Проблема в том что обрабатывается только одна ссылка из трех. За правильное решение отдам 200р.

2 комментария

LazyDev
PHP-developer

LazyDev - 8 марта 2015 11:34 -

$text = '[noleech]
<a href="example.com">example.com</a>
<a href="example.org">example.org</a>
<a href="example.net">example.net</a>
[/noleech] ';

$new_text = preg_replace(array('~(http|https|ftp|ftps)://(.*?)(\s|\n|[,.?!](\s|\n)|$)~', '#\[.*?\]#', '/href/'), array('<a href="$1:\/\/$2">$1://$2</a>"', '', 'class="link" href'), $text);

echo $new_text;

Мой блог: LazyDev.pro

Помогаю с решением проблем на платной основе.

adaptec
Юзер

adaptec - 8 марта 2015 12:44 -

Спасибо, то что нужно.

Чтобы комментировать - войдите или зарегистрируйтесь на сайте
наверх