Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Тексты > РегВыр: обрабатывать "внешние" ссылки


Автор: Darksquall 10.2.2008, 20:56
Как правильно сделать?
 smile 

есть код, удаляющий внешние ссылки из текста.
Код

$r = preg_replace("#(^|[\n ])([\w]+?://[\w\#$%&~/.\-;:=,?@\[\]+]*)#is", "<font color=gray><small> [Модерация] </small></font>", $r);


как пропускать , т.е. не заменять внутренние ссылки? т.е. на свой сайт

Автор: skyboy 10.2.2008, 21:27
а у тебя "внутренние" ссылки тоже содержать абсолютный URL? Если нет(URL относительный, без "http://" и адреса сайта), то какие проблемы? должно пропускать...

Автор: Darksquall 10.2.2008, 22:09
skyboy, да, внутренние тоже с абсолютным, http://

не очень в регулярках разбираюсь  smile , хотелось бы чтобы пропускало только http://www.site.ru а остальные заменяло на "мой текст"

Автор: Darksquall 11.2.2008, 20:47
Помогите плз. нужно позарез, читаю регулярки но самому не удается это сделать, может можно в два прохода? т.е. сначала заменить site.ru на что нибудь другое, а вторым проходом поубивать внешние ссылки, а третьи восстановить  site.ru обратно? 
как реализовать это программно?

Автор: Darksquall 11.2.2008, 22:28
все, решил без регулярных выражений

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)