PHP Regex在WP Caption中获取img

时间:2013-04-18 09:31:36

标签: php regex caption

我想在标题标记

中获取img标记

示例:

[caption id="attachment_5433" align="aligncenter" width="413"]
    <a href="abc.jpg"><img class=" wp-image-5433" title="This is a title" src="abc.jpg" alt="This is alt" width="413" height="551"></a>This is a desc
[/caption]

结果:

<img class=" wp-image-5433" title="This is a title" src="abc.jpg" alt="This is alt" width="413" height="551">

PHP正则表达式怎么做?

2 个答案:

答案 0 :(得分:0)

preg_match_all('/\[caption.*?\].*?(\<img[^>]*?).*?\[\/caption\]/', $stringWhereToSearchImg, $matches);

匹配将有img标记。

顺便说一句,你没有结束img,你应该用/&gt;

结束它

答案 1 :(得分:0)

<?php
    $string = '[caption id="attachment_5433" align="aligncenter" width="413"]
    <a href="abc.jpg"><img class=" wp-image-5433" title="This is a title" src="abc.jpg" alt="This is alt" width="413" height="551"></a>This is a desc
[/caption]';

    $result = preg_match_all("/\[caption.*?].*?(<img.*?\/?>).*?\[\/caption]/s", $string, $matches);

    print_r($matches);
?>

<强>输出

Array
(
    [0] : Array
        (
            [0] : '[caption id="attachment_5433" align="aligncenter" width="413"]
    <a href="abc.jpg"><img class=" wp-image-5433" title="This is a title" src="abc.jpg" alt="This is alt" width="413" height="551"></a>This is a desc
[/caption]'
        )

    [1] : Array
        (
            [0] : '<img class=" wp-image-5433" title="This is a title" src="abc.jpg" alt="This is alt" width="413" height="551">'
        )

)

更新,使用替换回调

<?php
    $string = '[caption id="attachment_5433" align="aligncenter" width="413"]
    <a href="abc.jpg"><img class=" wp-image-5433" title="This is a title" src="abc.jpg" alt="This is alt" width="413" height="551"></a>This is a desc
[/caption]';

    echo preg_replace_callback('/\[caption.*?].*?(<img.*?\/?>).*?\[\/caption]/s', function($matches) {
        return $matches[1];
    }, $string);
?>