2011-02-14 54 views
0

我使用插件为图片添加阴影,并在同一网站上使用lightbox。这是在WordPress插件我编辑功能:php正则表达式帮助

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

以及它的作用是过滤器添加到所有图像和过滤器添加阴影。但我不希望它将过滤器添加到所有图像。因为当它的时候,它以某种方式搞砸了灯箱。所以我想编辑上面的这一行,以确保只有当它在特定的div或页面中才能使用过滤器。或者另一种方式可能是不过滤,如果它在一个特定的div或页面。

我很乐意得到关于如何编辑这些正则表达式的教程。

+2

你应该仔细研究一下使用xml解析器。 – 2011-02-14 17:04:48

+2

是的,真的,使用SimpleXML什么的。 – 2011-02-14 17:05:57

+4

re:给图像添加阴影 - 你知道你可以在CSS中做到这一点,对吧? – Spudley 2011-02-14 17:29:28

回答

1

除非你改变的回调函数也一样,这是不可能做到为你描述一个正则表达式,因为:

  1. 灵活长度lookbehinds没有在PHP
  2. 做让你描述,同时避免灵活全长后视会改变发送到回调函数的值
6

我知道它无处不在,但你为什么不使用CSS3 box-shadow

+1

也许不是*无处不在*,但它可以在所有常用浏览器中工作 - 如果您使用[CSS3Pie](http://www.css3pie),甚至IE6/7/8都可以执行`box-shadow`。 COM /)。 – Spudley 2011-02-14 17:30:49

5

如果您使用的是灯箱,那意味着您要在您的网站上使用Javascript。

为什么不让jQuery(非常有用)跳转到jQuery并使用jQuery(非常有用)选择器来执行此操作。相反的正则表达式-ING一些奇怪的位置,只是像做

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

我知道这是不完全的回答你的问题,但我认为这是一个更通用的解决方案。