2013-03-21 23 views
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。沒有結束標籤的標籤是自封閉的。

+0

您應該在解析它之前格式化您的字符串..請參閱JSON語法 – 2013-03-21 07:46:14

+2

[您嘗試過?](http://www.whathaveyoutried.com/) – Tushar 2013-03-21 07:46:41

+0

@Sudip Pal,代碼不能使用JSON語法。 – timofey 2013-03-21 07:52:39

回答

2

Mmh - 如果這就像html一樣,您可以嘗試像XML那樣處理它並使用simplexml

讓我們試試看:

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

var_dump($xmlObj); 

生成的對象可能不是您要形成結構的100%,但現在這已經更容易實現。

期待您的反饋, 玩得開心!

+0

這是一個好主意!會嘗試。 – timofey 2013-03-21 07:58:50

+0

實際上,您必須處理不在自己代碼中的文字 - 將其包裹到代碼中或將其刪除 – 2013-03-21 09:32:19