从方括号短代码文本中获取 src

问题描述 投票:0回答:2

我正在通过短代码将图像添加到 WP 网站:

[figure src="" url"" caption=""]

其中

src
是图像源,
url
是指向更大图像的链接(如果需要),
caption
是标题。

我正在尝试根据此代码从上面获取

src

$pattern = '/<img[^>]*src=\"?(?<src>[^\"]*)\"?[^>]*>/im';
preg_match( $pattern, $html, $matches ); 
if($matches['src']) {
    return $matches['src'];
}

但是我想弄清楚如何获得

[figure]
匹配。

php shortcode text-extraction text-parsing wordpress-shortcode
2个回答
1
投票
/\[figure(( src="(?<src>[^"]+)")?|( url="(?<url>[^"]+)")?|( caption="(?<caption>[^"]+)")?)*\]/i

[图url =“http://example.com/large.gif”标题=“我的标题”src =“http://example.com/figure.gif”]

Array
(
    [0] => [figure url="http://example.com/large.gif" caption="my caption" src="http://example.com/figure.gif"]
    [1] => 
    [2] =>  src="http://example.com/figure.gif"
    [src] => http://example.com/figure.gif
    [3] => http://example.com/figure.gif
    [4] =>  url="http://example.com/large.gif"
    [url] => http://example.com/large.gif
    [5] => http://example.com/large.gif
    [6] =>  caption="my caption"
    [caption] =>  my caption
    [7] => my caption
)

0
投票

试试这个

$foo = [figure src="" url"" caption=""];
preg_match( '/src="([^"]*)"/i', $foo, $array ) ;
$finalStr = $array[0];
$explode = explode("=", $finalStr);
echo $explode[1];
© www.soinside.com 2019 - 2024. All rights reserved.