Добрый день!
Не знаю, на сколько для Вас принципиально вожно использовать регулярное выражение для преобразвния списка. Так можно сделать без него: Спойлер (Отобразить)PHP:
скопировать код в буфер обмена
<?PHP $html = <<<EOD <ul> <li>Список11</li> <li> <ul> <li>Список21 vvvvvvv vggggggggggggg</li> </ul> </li> </ul> EOD; echo "<pre>"; $obj=new SimpleXMLElement($html); echo "<hr>"; $buf=[]; foreach ($obj->children()->li as $node) { if($node->children()) { $tmp=[]; foreach ($node->children() as $node2) { $tmp[]=$node2->li->__toString(); } $buf[]=$tmp; } else { $buf[]=$node->__toString(); } } /* print_r($obj): SimpleXMLElement Object ( [li] => Array ( [0] => Список11 [1] => SimpleXMLElement Object ( [ul] => SimpleXMLElement Object ( [li] => Список21 vvvvvvv vggggggggggggg ) ) ) ) //------------------------------- print_r($buf): Array ( [0] => Список11 [1] => Array ( [0] => Список21 vvvvvvv vggggggggggggg ) ) */ ?>
Удачи!(Отредактировано автором: 26 Февраля, 2020 - 12:16:25)
|