PHP: Convert
  • Tree HTML tag to an array

后端 未结 4 969
无人共我
无人共我 2021-01-16 10:53

I\'m using jsTree and I need to convert this HTML tag tree code

  • to a PHP array. The jsTree HTML tag will be passed to PHP to be parsed and
4条回答
  •  时光说笑
    2021-01-16 11:18

    Regarding:

    My problem I'm having a hard time parsing the string HTML tag and save it in a PHP array.

    I suggest that you use an HTML parser, such as simplehtmldom. This will allow you to traverse over HTML DOM just the way you want.

    Here is a quick and dirty UL walking script:

    children as $li )
            {
                if ( $li->tag != "li" )
                {
                    continue;
                }
                $arar = array( );
                foreach( $li->children as $ulul )
                {
                    if ( $ulul->tag != "ul" )
                    {
                        continue;
                    }
                    WalkUL( $ulul, $arar );
                }
                $ar[ $li->find( "a", 0 )->plaintext ] = $arar;
            }
        }
        WalkUL( $DOM->find( "ul", 0 ), $ARR );
        print_r( $ARR );
    ?>
    

    Its output, not exactly as you wanted it but close:

    Array
    (
        [Folder 1] => Array
            (
                [Child 1.1] => Array
                    (
                    )
                [Folder 1.1] => Array
                    (
                        [Child 1.1.1] => Array
                            (
                            )
                    )
                [Folder 1.2] => Array
                    (
                        [Child 1.2.1] => Array
                            (
                            )
                        [Child 1.2.2] => Array
                            (
                            )
                    )
            )
        [Folder 2] => Array
            (
                [Child 2.1] => Array
                    (
                    )
                [Child 2.2] => Array
                    (
                    )
            )
        [Outer Child] => Array
            (
            )
    )
    

提交回复
热议问题