- 12, Feb 2015
- #1
здравствуйте! прошу помочь написать регулярку для следующего случая.
мне необходимо собрать со страницы все ссылки с определенной маской и тем ссылкам, у которых target отсутсвует или не равен "_blank", нужно вставить target="_parent". ссылки по своей маске получаю следующим образом:
мне необходимо собрать со страницы все ссылки с определенной маской и тем ссылкам, у которых 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
);