регулярные выражения

  • Автор темы Attikus
  • 1564
  • Обновлено
  • 12, Feb 2015
  • #1
здравствуйте! прошу помочь написать регулярку для следующего случая.

мне необходимо собрать со страницы все ссылки с определенной маской и тем ссылкам, у которых target отсутсвует или не равен "_blank", нужно вставить target="_parent". ссылки по своей маске получаю следующим образом:
 (<a.*?href=["\']?https?:\/\/[-\w]*?\.domen\.subdomen\.ru.*?["\']?(?:\s+|>))
осталось понять, как быть с target Добавлено через 34 минуты решение пока только костыльное созрело, если кто знает, как хорошо, буду благодарен отзыву
 $content = preg_replace_callback(

'#(<a(?:[^>](?!(target=)=))*+)#si',

function ($matches) {

if(strpos($matches[1], 'domen.subdomen.ru')) {

if(strpos($matches[1], '_blank')) {

return $matches[1];

} else {

return $matches[1] . 'target = "_parent"';

}

} else {

return $matches[1];

}

},

$content

);

Attikus


Рег
12 Feb, 2015

Тем
2

Постов
3

Баллов
23
  • 14, Feb 2015
  • #2
За костыли спасибо. Что поделились. Квалифицированный отзыв дать не могу.
 

Wmboard


Рег
01 Jan, 2011

Тем
522

Постов
7188

Баллов
12408
Тем
49554
Комментарии
57426
Опыт
552966