Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/253.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP DomDocument结果为空<;李>;无结束标记的标记_Php_Regex - Fatal编程技术网

PHP DomDocument结果为空<;李>;无结束标记的标记

PHP DomDocument结果为空<;李>;无结束标记的标记,php,regex,Php,Regex,我有一个html代码,其中包含: <ul> <li></li> <li></li> <li></li> </ul> 这只发生在标记上。如何强制输出包含标记的结束标记 我试图用正则表达式解决问题,但找不到解决方案。如果您有正则表达式解决方案,我也会接受。根据 如果li元素后面紧跟着另一个li元素,或者如果父元素中没有更多内容,则可以省略li元素的结束标记 $html='1!'

我有一个html代码,其中包含:

<ul>
    <li></li>
    <li></li>
    <li></li>
</ul>
这只发生在
  • 标记上。如何强制输出包含
  • 标记的结束标记

    我试图用正则表达式解决问题,但找不到解决方案。如果您有正则表达式解决方案,我也会接受。

    根据

    如果
    li
    元素后面紧跟着另一个
    li
    元素,或者如果父元素中没有更多内容,则可以省略
    li
    元素的结束标记

    $html='1!'
    
    '; $doc=新文档; $doc->loadHTML($html); echo$doc->saveHTML();
    印刷品

    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
    <html><body>
      <ul><li>
        <li>foo</li>
        <li>
        <li>
        </ul></body></html>
    
    
    

    为什么?
  • 元素的结束标记是可选的。@Quentin我知道,但更喜欢有结束标记。在我看来,没有它似乎有问题。行为似乎取决于是否有内容,而另一个
    li
    元素正在处理它。@Scuzzy这不是重复的。这个问题是关于HTML的。这个问题是关于PHP对DOMDocument的实现。(鞋子不是袜子的复制品,即使它们都穿在脚上。)@WiktorStribiżew不是复制品见上文。谢谢你的回答。我知道这是可选的。买我喜欢的就是拥有它。
    $html = '
    <html>
      <body>
      <ul>
        <li></li>
        <li>foo</li>
        <li></li>
        <li></li>
        </ul>
      </body>
    </html>
    ';
    $doc = new DOMDocument;
    $doc->loadHTML($html);
    echo $doc->saveHTML();
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
    <html><body>
      <ul><li>
        <li>foo</li>
        <li>
        <li>
        </ul></body></html>