如何将标签和属性解析为多维数组?

时间:2013-03-21 07:42:23

标签: php

如何解析以下

{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类似。没有结束标记的标记是自动关闭的。

1 个答案:

答案 0 :(得分:2)

嗯 - 如果这就像html一样,你可以尝试将其视为XML并使用simplexml

让我们试一试:

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

var_dump( $xmlObj );

生成的对象可能不是您尝试构建的结构的100%,但现在已经更容易实现了。

期待您的反馈, 玩得开心!