短代码样式解析

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

[我想我可以在项目中实现相同的结构,而我只是以为WP是如何使用短代码的,所以我认为这是可以使用的,但尚未进行追踪。

我从preg_match_all开始解析自己preg_match_all('/[[^]]*]/', $content, $match);然后返回包含内容中所有短代码的数组,但按预期的方式进行解析,然后查看解析具有名称的变量,名称或数组键,我开始在解析时变得很繁重。

我目前的想法是分解空格,然后解析每个空格,但是即使它们用引号引起来,我也会遇到值中的空格。因此,如果我先解析引用的数据,然后再重新构建空格,这似乎非常浪费。我不需要在这里重新发明轮子,所以任何输入都是很棒的。

示例

[[shortcodename key1 =“这是一个值” key2 =“ 34”]

想拥有

Array ( [shortcodename] => Array ( [key1] => this is a value [key2] => 34 )

php shortcode
1个回答
0
投票

您可以尝试更改所有未用引号引起来的空格,以分号表示然后用分号爆炸

$regex = '~"[^"]*"(*SKIP)(*F)|\s+~';
$subject = 'hola hola "pepsi cola" yay';
$replaced = preg_replace($regex,";",$subject);
$exploded = explode(';', $replaced);

Credits

© www.soinside.com 2019 - 2024. All rights reserved.