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

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


 adaptec    08.03.2015    Стол заказов    768    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)

Gameer
224

1118 | 394

Gameer - 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;

Истина в противоречии.​

adaptec
2

adaptec - 8 марта 2015 12:44 - Юзер

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

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