wordpressのショートコードのように文字列から配列を返したいのですが、配列は例のようにしたいです
私はこの文字列を持っています
$str = 'codes example : [code lang="php"]<?php echo "Hello Wold" ; ?>[/code] [code lang="html"]<b>Hello</b>[/code]' ;
そして私は含むを返したい
array(
array(
'code' => '[code lang="php"]<?php echo "Hello Wold" ; ?>[/code]' ,
'function' => 'code' ,
'attr' => array( 'lang' => 'php' ) ,
'value' => '<?php echo "Hello Wold" ; ?>'
) ,
array(
'code' => '[code lang="html"]<b>Hello</b>[/code]' ,
'function' => 'code' ,
'attr' => array( 'lang' => 'html' ) ,
'value' => '<b>Hello</b>'
)
)
preg_match_allを使ってやってみました
私はこのパターンを使用しました/[[a-z]{3,}+ *[a-z]{2,}=(.*)+ *](.*)[\/[a-z]{3,}]/U
そして結果は
Array ( [0] => Array ( [0] => [link href="http://www.php.net" text="php"][/link] [1] => [code lang="php"][/code] [2] => [code lang="html"]Hello[/code] ) [1] => Array ( [0] => " [1] => " [2] => " ) [2] => Array ( [0] => [1] => [2] => Hello ) )