2013-11-15 68 views
2

我想用get_the_content()從wordpress文章解析出圖片。嵌入在html中的PHP Wordpress Shortcode正則表達式

它返回一堆html和多個收藏夾簡碼的:

<ul> 
    <li>testing1</li> 
    <li>egfgf</li> 
</li> 
<p>Here!</p> 
[lightbox link="http://www.test.com/photo1.jpg" width="150" align="none" title="photo 1" frame="true" icon="image"] 
[lightbox link="http://www.test.com/photo2.jpg" width="150" align="none" title="photo 2" frame="true" icon="image"] 
[lightbox link="http://www.test.com/photo5.jpg" width="150" align="none" title="photo 5" frame="true" icon="image"] 

在HTML並不總是像上面,並且可以是任何HTML的變體。我的問題是,如何使用正則表達式模式從所有燈箱縮略詞中獲得鏈接值?

所需的輸出:

Array 
(
[0] => Array 
    (
     [0] => http://www.test.com/photo1.jpg 
     [1] => http://www.test.com/photo2.jpg 
     [2] => http://www.test.com/photo5.jpg 
    ) 
) 

模式我已經嘗試使用:

preg_match_all('/(?<![^"])\S+\.[^"]+/', $text, $matches); 
print_r($matches); 

這適用於只是收藏的文字,但是當我加入HTML它不工作。

爲什麼我的正則表達式在這個網站上工作http://regex101.com/r/eE6fU9但不是在PHP?

回答

1

您可以使用以下

preg_match_all('/\[lightbox[^\]]*link="([^"]*)"[^\]]*\]/i', $text, $matches); 
print_r($matches[1]); 

demo

+0

我有一個很難得到來自陣列的價值。你的正則表達式工作100%。謝謝! – user2997491