Определить ссылку регулярным выражением

Обсуждение серверного программирования.

Модераторы: Duncon, Yurich

Ответить
Аватара пользователя
Duncon
Сообщения: 1974
Зарегистрирован: 10 окт 2004, 14:11
Откуда: Питер
Контактная информация:

30 ноя 2013, 21:22

Проблема следующая: какой-то умник из яндекса или ещё от куда взял моду писать ссылку на свои ресурсы в виде //mc.yandex. ru/... как следствие стандартные схемы вычисления внешней ссылки через двоеточие например отпадают. Единственный на мой взгляд способ зацепиться за двойной слэшь //
И вот тут почему-то начались проблемы, пытался по всякому, в данный момент остановился на попытках позитивной опережающей проверке, не получается.
Смысл выражения вычленить все ссылки добавить моё значение, при этом отвергнув внешние ссылки..

Код: Выделить всё

$s=preg_replace('#(ef=[\'|"])([^(/(?=/))]*?[\'|"])#','\\1'.$myval.'\\2',$s); 
[syntax=Delphi] [/syntax]
Аватара пользователя
Duncon
Сообщения: 1974
Зарегистрирован: 10 окт 2004, 14:11
Откуда: Питер
Контактная информация:

01 дек 2013, 00:23

Решил таким образом..

Код: Выделить всё

$s=preg_replace('#(ef=[\'|"])((?!/|\S{3,4} :) .*?[\'|"])#','\1'.$myval.'\2',$s); 
[syntax=Delphi] [/syntax]
Ответить