Привет всем, тут у меня возникла проблемка... в этой области никогда не был силен. Есть переменная, например $text полученная через $_POST, но в данном случае это неважно. Она содержит сообщение, написанное пользователем, нужно сделать поиск url в этой переменной, и, когда находится url выполняется: PHP: { // переменной $url соответственно присваивается найденный url // тут я напишу те действия, которые мне нужны, при этом изменяя $url // и в конце измененная мной $url заменяет url в $text } И на выходе все url в $text оказываются обработанными тем, что находится между скобками. Помогите.
Fantom3D Описывайте конечную цель, а не отдельные шаги. А пока - http://php.net/preg_match, http://php.net/str_replace
Gifts Хорошо, описываю. В $text нужно заменить юрл, которых нет в MySql на "<font color=red>Ссылки запрещены</font>". Проверка есть ли в БД эта ссылка идет как раз там где я писал, что мой код. И в конце мы получаем отфильтраванное сообщение без ненужных ссылок. Надеюсь, теперь понятно.
Как заменить, подсказываю: PHP: $text='<!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.0//EN" "http://www.wapforum.org/DTD/xhtml-mobile10.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head>'; $r=preg_replace( '!((https?|ftp|gopher|telnet|file|notes|ms-help):((//)|(\\\\))+[\w\d:#@%/;$()~_?\+-=\\\.&]*)!', '<span style="color:red">Ссылки запрещены!</span>',$text ); echo $r; Если я все правильно понял
Тут заменяется любая ссылка, а проверку делал, какие заменять, какие нет) Короче говоря, cам сделал. Сначала: PHP: preg_match_all('(((f|ht){1}tp://)[-a-zA-Z0-9@:%_\+.~#?&//=;&]+)',$content,$matches, PREG_PATTERN_ORDER); Потом проверка и: PHP: $content2 = str_replace ($matches[0][$ii], $xx, $content) ; Ну вообщем то и все)) Остальное и так понятно)