Как я могу иметь текст внутри bbcode? - PullRequest
0 голосов
/ 24 февраля 2011

Мне нужна помощь с этим сценарием 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

1 Ответ

0 голосов
/ 24 февраля 2011

Мое предложение:

Замените [ и ] на < и >, затем преобразуйте эту строку в объект XML с использованием SimpleXML и получите доступ к 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 болезненны.

...