我需要这个preg_match脚本的帮助。我想要一个bbcode内的文本。所以这就是字符串:[caption id="attachment_123" align="alignleft" width="100" caption="This is the text that I want"]
你会怎么做?重要的是,像id和align这样的值不会一直相同。我试过像preg_match('#\[caption(?:.*?)caption=\"(.*?)\"\]#s',$result,$array);
感谢您的帮助! phpheini
答案 0 :(得分:0)
我的建议:
将[
和]
替换为<
和>
,然后使用SimpleXML
将该字符串转换为XML对象,并将caption
作为属性创建对象。
$input = '[caption id="attachment_123" align="alignleft" width="100" caption="This is the text that I want"]';
$input = str_replace(array('[', ']'), array('<', '>'), $input);
$object = new SimpleXML($input);
echo $object->caption;
清洁简单。 Regexp
和HTML
/ BBCode
很痛苦。