Ответы пользователя по тегу Парсинг
  • Как распарсить HTML с неограниченной глубиной вложенности?

    kemply
    @kemply
    школьник
    Воспользуйтесь рекурсивной функцией

    $a = '<span style="font-size:18px"><span style="color:#FF0000">Apollo 11 was the spaceflight that <span style="font-family:courier new,courier,monospace">landed the first humans</span></span><span style="font-family:courier new,courier,monospace">, Americans </span>Neil Armstrong and Buzz Aldrin, on the Moon on July 20, 1969, at 20:18 UTC. Armstrong became the first to step onto the lunar surface 6 hours later on July 21 at 02:56 UTC.</span>';
    $dom = new DOMDocument;
    $dom->loadHTML($a);
    echo '<pre>';
    
    function recurse($a, $i){
    	
    	var_dump("$i -> " . $a->nodeName );
    	if( $a->nodeName != '#text' )
    		foreach( $a->childNodes as $t )
    			recurse($t, $i+1);
    	
    }
    
    foreach( $dom->documentElement->childNodes as $i )
    	recurse($i, 0);
    Ответ написан
    Комментировать