|
|
|
|
|
для: kasmanaft
(17.02.2008 в 15:59)
| | Ох, да) Никак не могу привыкнуть к тому, что в PHP нет g, но есть s. Всегда почему-то делаю наоборот. | |
|
|
|
|
|
|
|
для: Rprint-max
(15.02.2008 в 18:03)
| | Вместо [^(<\/noindex>)]* можно использовать, например, ((?!<\/noindex>).)*
Но работать вряд ли будет, надо посмотреть что там в $z (а может быть и заработает)
А в варианте SHAman'a вместо модификатора "g" надо использовать preg_match_all(). И, наверно, добавить модификатор "s". | |
|
|
|
|
|
|
|
для: Rprint-max
(15.02.2008 в 18:03)
| | Не так. Даже если сделать этого монстра, он будет медленным. Советую сделать в два приема:
1) хватаем содержимое тега noindex
2) если оно не пустое,
ищем в нем ссылку.
для пункта 1:
/<noindex.*?>(.*?)<\/noindex>/ig
|
| |
|
|
|
|
|
|
| Подскажите, как можно сделать проверку на нахождение ссылки в <noindex>.
У меня есть шаблон $z, который безошибочно находит ссылку.
Я сделал такой шаблон на определение ссылки в <noindex>.
// $z - шаблон ссылки
$z_noindex="/<noindex>[^(<\/noindex>)]*$z /im";
|
он работает на простых и коротких текстах ссылок, а на больших иногда нет.
в чём может быть неточность?
идея в том, чтобы регулярное выражение говорило так:
ищем ссылку $z, перед которой стоит <noindex>, и между $z и <noindex> нет </noindex> | |
|
|
|
|