2011-02-14 89 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')

我知道這是不完全的回答你的問題,但我認爲這是一個更通用的解決方案。