PHP регулярное выражение справки - PullRequest
0 голосов
/ 14 февраля 2011

Я добавляю тень к изображениям с помощью плагина, а также использую лайтбокс на том же сайте. Эта функция в плагине WordPress я редактирую:

function filter($content) {
return preg_replace_callback('#<img.+?src\s*=\s*["|\'](.+?)["|\'].+?>#isu', array($this, 'filter_callback'), $content);
}

И он добавляет фильтр ко всем изображениям, а фильтр добавляет тень. Но я не хочу добавлять фильтр ко ВСЕМ изображениям. Потому что, когда это происходит, он как-то портит лайтбокс. Поэтому я хочу отредактировать эту строку выше, чтобы убедиться, что только если он находится в определенном div или странице, чтобы использовать фильтр. Или другой способ - НЕ фильтровать, если он находится в определенном div или странице.

Я был бы рад получить какое-то руководство по редактированию этих регулярных выражений.

Ответы [ 3 ]

6 голосов
/ 14 февраля 2011

Я знаю, что это не будет работать везде, но почему бы вам просто не использовать CSS3 box-shadow ?

5 голосов
/ 14 февраля 2011

Если вы используете лайтбокс, это означает, что вы полагаетесь на Javascript на своем сайте.

Почему бы вам не сделать (очень полезный) переход к jQuery и не использовать jQuery (очень полезный)селекторы, чтобы сделать это.Вместо регулярного выражения для какого-то странного места, просто сделайте что-то вроде

$('.lightbox-photo').addClass('filter')

Я знаю, что это НЕ ТОЛЬКО ответ на ваш вопрос, но я думаю, что это более универсальное решение.

1 голос
/ 15 февраля 2011

Если вы не измените также функцию обратного вызова, это невозможно сделать так, как вы описали с помощью регулярного выражения, потому что:

  1. гибкая длина, взгляды за пределами допускаются в PHP
  2. , как выОпишите, избегая при этом гибкой длины, при взгляде назад будет изменено значение, отправленное в функцию обратного вызова
...