0

以下を解析するにはどうすればよいですか

{menu id="123"}
  Random text.
  {menu-item id="123"/}
  Random text.
  {menu-item id="123"/}
{/menu}

そのような配列に

Array(
  [menu] => Array(
    [id] => 123
    [children] => Array(
      [menu-item] = Array(
        [id] => 123
      )
      [menu-item] = Array(
        [id] => 123
      )
    )
  )
)

HTMLに似ています。終了タグがないタグは自己閉鎖されます。

4

1 に答える 1

2

うーん-これがhtmlのようなものなら、XMLのように扱って、simplexmlを使うことができます。

やるだけやってみよう:

$xmlData = str_replace( array( '{', '}' ), array( '<', '>' ), $sourceData );
$xmlObj = simplexml_load_string( $xmlData );

var_dump( $xmlObj );

結果として得られるオブジェクトは、形成しようとしている構造の100%ではない可能性がありますが、これで、すでにはるかに簡単に実現できます。

フィードバックをお待ちしております。楽しんでください。

于 2013-03-21T07:56:37.250 に答える