К списку форумов К списку тем
Регистрация    Правила    Главная форума    Поиск   
Имя: Пароль:
Рекомендовать в новости

Как сделать регулярку, обрабатывающую только нужные ссылки?

Гость
0 - 15.04.2016 - 13:10
Добрый день!
Есть некоторый текст. В нём встречаются ссылки нескольких видов: просто ссылка, например http://vk.com/id99999999999999, и ссылка, содержащая youtube
задача состоит в том, чтобы обернуть обычные ссылки в теги <A> а ютубовские ссылки обернуть в IFRAME
оборачиваю сначала в IFRAME ссылки на ютуп
$regex = "~(http)?s?\\:?[/]{0,2**[w]{0,3**\\.?youtu.*\\?v=(\\S*)~i"; // регулярочка для ютупа
$value = preg_replace ($regex, "<iframe style='padding-right: 10px;' align='left' width='360' height='287' src='https://www.youtube.com/embed/\\2' frameborder='0' allowfullscreen='1'></iframe>", $value);

а далее, я хочу обернуть в теги <A> ссылки не содержащие ключевого слова youtube
Пытался использовать регулярное выражение (https?\:\/\/www\.)(?!youtube\.\S+)\s? но оно не позволяет захватить выражение скобками, чтобы подставить его в preg_replace — возвращается только то, что содержится в $1, а если обернуть всё выражение скобками, то возвращается вся строка, что ломает уже обёрнутые в iframe видосы.
Заранее благодарю



Гость
1 - 15.04.2016 - 16:57
http://www.php.su/preg_replace_callback

и использовать обычный regexp который просто находит сслыки, в коллбеке ты уже посмотришь на домен и решишь что с ней делать
Гость
2 - 16.04.2016 - 12:25
Так ты выложи свой "некоторый текст".
Гость
3 - 18.04.2016 - 14:36
1-wayerr > благодарю, это самое жизненное =)


К списку вопросов






Copyright ©, Все права защищены