【发布时间】:2015-05-02 18:13:17
【问题描述】:
我想通过“preg_split”将简码解析成数组。
这是示例短代码:
[contactform id="8411" label="这是\"第一个标签" label2='这是第二个\'标签']这应该是结果数组:
大批 ( [id] => 8411 [label] => 这是 \" 第一个标签 [label2] => 这是第二个 \' 标签 )我有这个正则表达式:
$atts_arr = preg_split('~\s+(?=(?:[^\'"]*[\'"][^\'"]*[\'"])*[^\'"]*$) ~', trim($shortcode, '[]'));不幸的是,这仅在没有转义引号 \' 或 \" 时才有效。
提前谢谢!
【问题讨论】:
-
preg_split不是要走的路,如果需要确保结果的连续性,请使用preg_match_all和\G锚。 -
我不知道 Casimir et Hippolyte 是否给出了正确的答案。但这是一个非常困难的问题。我在类似情况下通过使用json格式的参数解决了它
标签: php regex quotes shortcode preg-split