PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи

Страниц (1): [1]

> Найдено сообщений: 4
calipso Отправлено: 07 Декабря, 2009 - 11:06:45 • Тема: Регулярное выражение для оборачивания ссылок • Форум: Регулярные выражения

Ответов: 9
Просмотров: 491
trot пишет:
Предлагаю следующий варинат

Спасибо за вариант, попробую поковырять.

Phantik пишет:
Сделай в два хода

Да как-то не особо хочется в несколько заходов делать Недовольство, огорчение

Почему всё же не работает так как надо
CODE (text):
скопировать код в буфер обмена
  1. $to = preg_replace('/(?<!(\[url=)|\[url="|<a href=|<a href=")((https?|ftp)):\/\/([-A-Z0-9+&@#\/%?=~_|!:,.;]*[A-Z0-9+&@#\/%=~_|])(?!(\[\/url\]))/i', '[url="\0"]\0[/url]', $from);
?

Вроде же есть для проверки на закрывающий [/url], но не обрабатывается как нужно. Огорчение
calipso Отправлено: 05 Декабря, 2009 - 15:56:39 • Тема: Регулярное выражение для оборачивания ссылок • Форум: Регулярные выражения

Ответов: 9
Просмотров: 491
Champion пишет:
Тогда еще утверждение относительно [/url] справа от ссылки напиши.

А это не считается?
calipso Отправлено: 05 Декабря, 2009 - 15:01:21 • Тема: Регулярное выражение для оборачивания ссылок • Форум: Регулярные выражения

Ответов: 9
Просмотров: 491
Спасибо за быстрые ответы Улыбка

trot пишет:
Мне кажется такую задачу не решить одним действием.

Я тоже сначала думал в данном направлении, но стало получатся громоздко и выходить за пределы решения при помощи регулярного выражения Улыбка

Champion пишет:
Попробуй сам, а если не получится, поправим.

Набросал
CODE (text):
скопировать код в буфер обмена
  1. $to = preg_replace('/(?<!(\[url=)|\[url="|<a href|<a href=")((https?|ftp)):\/\/([-A-Z0-9+&@#\/%?=~_|!:,.;]*[A-Z0-9+&@#\/%=~_|])(?<!\[\/url\])/i', '[url="\0"]\0[/url]', $from);
- тяжеловато, но хоть с какой-то проверкой валидности URL. Всё бы было ничего, но текст типа
CODE (text):
скопировать код в буфер обмена
  1. [url="http://ya.ru/index.html"]http://ya.ru/index.html[/url]
стал превращаться в
CODE (text):
скопировать код в буфер обмена
  1. [url="http://ya.ru/index.html"][url="http://ya.ru/index.html"]http://ya.ru/index.html[/url][/url]

Т.е., в первой чаасти строки [url="http://ya.ru/index.html"] URL не обрабатыватся (как и должно быть), а вот после - http://ya.ru/index.html[/url] - обрабатыватся.

Как быть?
calipso Отправлено: 05 Декабря, 2009 - 14:21:38 • Тема: Регулярное выражение для оборачивания ссылок • Форум: Регулярные выражения

Ответов: 9
Просмотров: 491
Добрый день!

Есть задача: обернуть ссылки bb-кодами, например чтобы
стало
CODE (text):
скопировать код в буфер обмена
  1. [url="http://ya.ru"]http://ya.ru[/url]
.

Вопрос заключается в следующем: как обернуть только не обёрнутые ссылки, т.е. если уже ссылка обёрнута - она не оборачивалась. Т.е., при виде ссылки
CODE (text):
скопировать код в буфер обмена
  1. [url="http://ya.ru"]http://ya.ru[/url]
или
CODE (text):
скопировать код в буфер обмена
  1. <a href="http://ya.ru">http://ya.ru</a>
ничего не происходило.

Как это лучше и правильнее сделать?

Страниц (1): [1]
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB