Colix Опубликовано 23 сентября, 2007 Жалоба Поделиться Опубликовано 23 сентября, 2007 (изменено) Есть такая строчка в PHP - коде: $msg = eregi_replace("(.*)\\[urll\\](.*)\\[/urll\\](.*)","\\1<a href=\\2>\\2</a>\\3",$msg); Так вот, при передаче в переменную $msg строки "[urll]http://www.somewhere.ru[/urll]" строка преображается в "<a href=http://www.somewhere.ru>http://www.somewhere.ru</a>", НО если мы передаём больше одного элемента url - например "[urll]http://www.somewhere.ru[/urll]Something[urll]http://www.somewhere2.ru[/urll]", то функция изменяет только последний - "[urll]http://www.somewhere.ru[/urll]Something<a href=http://www.somewhere2.ru>". Как сделать так, чтобы она превращала всё?! Изменено 23 сентября, 2007 пользователем Colix Ссылка на комментарий Поделиться на другие сайты Поделиться
Darhazer Опубликовано 24 сентября, 2007 Жалоба Поделиться Опубликовано 24 сентября, 2007 Условие (.*) у вас не правильно, надо всех символов, изключеная [ $msg = 'test [urll]http://www.somewhere.ru[/urll]Something[urll]http://www.somewhere2.ru[/urll] worked';$msg = eregi_replace("\[urll\]?([^\[]*)?\[/urll\]","<a href=\\1>\\1</a>",$msg);echo $msg; Ссылка на комментарий Поделиться на другие сайты Поделиться
Colix Опубликовано 24 сентября, 2007 Автор Жалоба Поделиться Опубликовано 24 сентября, 2007 Условие (.*) у вас не правильно, надо всех символов, изключеная [ $msg = 'test [urll]http://www.somewhere.ru[/urll]Something[urll]http://www.somewhere2.ru[/urll] worked';$msg = eregi_replace("\[urll\]?([^\[]*)?\[/urll\]","<a href=\\1>\\1</a>",$msg);echo $msg; И снова Вы мне помогли, спасибо огромное... Ссылка на комментарий Поделиться на другие сайты Поделиться
Colix Опубликовано 24 сентября, 2007 Автор Жалоба Поделиться Опубликовано 24 сентября, 2007 А как тогда сделать такое - [urll=www.something.com]Link title[/urll] Ссылка на комментарий Поделиться на другие сайты Поделиться
Darhazer Опубликовано 25 сентября, 2007 Жалоба Поделиться Опубликовано 25 сентября, 2007 Я пользую preg Но нашел этот код... <?$description = 'test [urll=http://www.somewhere.ru]SomeWhere[/urll] Something [urll=http://www.somewhere2.ru]Another link[/urll] worked';$regLienSimple="\[urll\] ?([^\[]*) ?\[/urll\]"; $regLienEtendu="\[urll ?=([^\[]*) ?] ?([^]]*) ?\[/urll\]"; if (ereg($regLienSimple, $description)) { $description=ereg_replace($regLienSimple, "<a href=\"\\1\">\\1</a>", $description); } else { $description=ereg_replace($regLienEtendu, "<a href=\"\\1\" target=\"_blank\">\\2</a>", $description); }echo $description; Ссылка на комментарий Поделиться на другие сайты Поделиться
Colix Опубликовано 4 октября, 2007 Автор Жалоба Поделиться Опубликовано 4 октября, 2007 Я пользую preg Но нашел этот код... <?$description = 'test [urll=http://www.somewhere.ru]SomeWhere[/urll] Something [urll=http://www.somewhere2.ru]Another link[/urll] worked';$regLienSimple="\[urll\] ?([^\[]*) ?\[/urll\]"; $regLienEtendu="\[urll ?=([^\[]*) ?] ?([^]]*) ?\[/urll\]"; if (ereg($regLienSimple, $description)) { $description=ereg_replace($regLienSimple, "<a href=\"\\1\">\\1</a>", $description); } else { $description=ereg_replace($regLienEtendu, "<a href=\"\\1\" target=\"_blank\">\\2</a>", $description); }echo $description; Всё работает, спасибо! Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Для публикации сообщений создайте учётную запись или авторизуйтесь
Вы должны быть пользователем, чтобы оставить комментарий
Создать учетную запись
Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!
Регистрация нового пользователяВойти
Уже есть аккаунт? Войти в систему.
Войти