PHP 중첩 ul를 트리 배열로 변환

1 개요[ | ]

PHP 중첩 ul를 트리 배열로 변환
HTML 중첩 ul를 PHP 배열로 변환
HTML 중첩 ul를 PHP 트리 배열로 변환
<?php
$html = <<<EOT
<ul>
   <li>
      <span>/</span>
      <ul>
         <li><span>bin</span></li>
         <li><span>etc</span></li>
         <li>
            <span>usr</span>
            <ul>
               <li><span>bin</span></li>
            </ul>
         </li>
         <li>
            <span>var</span>
            <ul>
               <li><span>log</span></li>
            </ul>
         </li>
      </ul>
   </li>
</ul>
EOT;
$json = $html;
$json = preg_replace('/<span>([^<]+)<\/span>/', '"text":"$1",', $json);
$json = str_replace('<ul>', '"children":[', $json);
$json = str_replace('</ul>', '],', $json);
$json = str_replace('<li>', '{', $json);
$json = str_replace('</li>', '},', $json);
$json = trim($json);
$json = preg_replace('/,(\s*[}|\]])/','$1',$json);
$json = preg_replace('/^[^{]*{/','{',$json);
$json = preg_replace('/}[^}]*$/','}',$json);
$arr = json_decode($json, true);
print_r($arr);

2 같이 보기[ | ]

문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}