Php 输出html解析的干净格式

Php 输出html解析的干净格式,php,Php,我正在使用下面的代码来检索一个特定的div及其内容,当您查看我的页面的源代码时,所有的html都被很好地格式化了,下面的代码中有没有格式化html的方法?我尝试过将ob_start和formatOutput设置为true,但其中的所有html都是视图源中的自升式 <?php $doc = new DOMDocument(); $doc->preserveWhiteSpace = TRUE; $doc->formatOutput = TRUE;

我正在使用下面的代码来检索一个特定的div及其内容,当您查看我的页面的源代码时,所有的html都被很好地格式化了,下面的代码中有没有格式化html的方法?我尝试过将ob_start和formatOutput设置为true,但其中的所有html都是视图源中的自升式

<?php 

   $doc = new DOMDocument();   
   $doc->preserveWhiteSpace = TRUE;
   $doc->formatOutput = TRUE;
   $doc->loadHTMLFile('http://example.com/activity.php?uid=94003');    
   $matches = (new DOMXPath($doc))->query("//div[contains(concat(' ', normalize-space(@class), ' '), 'global1')]");
   foreach ($matches as $node) {
       echo $doc->saveHTML($node);
   }   

?> 
可以帮助您

使文本中的HTML标记更加安全并符合标准流程 用于HTML、XHTML或XML文档的文本;HTML5支持限制 使用黑名单或白名单的HTML元素、属性或URL协议 平衡标记、检查元素嵌套、转换不推荐的属性 和标签,使相对URL成为绝对的,等等。快速,高度可定制, 文档齐全的单文件,55KB文件简单HTML,免费 并根据LGPL v3和GPL v2+获得许可,用于过滤、保护& 清理博客评论或论坛帖子中的HTML,生成兼容XML的 从网页摘录中输入项目,将HTML转换为XHTML,漂亮的打印 HTML、清除网页、减少垃圾邮件、删除XSS代码等

您可以通过以下代码来实现:

    <?php
      require("htmLawed/htmLawed.php");

      $doc = new DOMDocument();   
      $doc->preserveWhiteSpace = TRUE;
      $doc->formatOutput = TRUE;
      $doc->loadHTMLFile('http://example.com/activity.php?uid=94003');    
      $matches = (new DOMXPath($doc))->query("//div[contains(concat(' ', normalize-space(@class), ' '), 'global1')]");

      $result =  "<pre>";
      foreach ($matches as $node) {
            $temp = $doc->saveHTML($node);
            $result .= htmlspecialchars( htmLawed($temp, array('tidy'=>4)));
     } 
     $result .=  "</pre>";
     echo $result;
    ?>

你所说的“格式”是什么意思?发生了什么?你能公布实际和预期的产出吗?如何提高?向我们展示预期的输出和您当前获得的内容。我们不是读心术的人(至少不是我)。如果只是源代码的外观,为什么即使代码运行也很重要呢?所有的div都被推到了一边,所以源代码都是干净的,格式化的,但这部分是不完整的not@FelippeDuarte我更新了itHTML TIdy让我们这样做:这完全破坏了它,带来了页面和diidnt格式的所有内容it@Codi我已经更新了我的答案。请检查并通知我答案result.it表示可恢复的致命错误:无法将DomeElement类的对象转换为string@Codi通过
(string)$node将其转换为字符串
我不确定您的意思将其转换为字符串我对此不熟悉
<div>
    <table></table>
    <table></table>
    <table></table>
</div>
    <?php
      require("htmLawed/htmLawed.php");

      $doc = new DOMDocument();   
      $doc->preserveWhiteSpace = TRUE;
      $doc->formatOutput = TRUE;
      $doc->loadHTMLFile('http://example.com/activity.php?uid=94003');    
      $matches = (new DOMXPath($doc))->query("//div[contains(concat(' ', normalize-space(@class), ' '), 'global1')]");

      $result =  "<pre>";
      foreach ($matches as $node) {
            $temp = $doc->saveHTML($node);
            $result .= htmlspecialchars( htmLawed($temp, array('tidy'=>4)));
     } 
     $result .=  "</pre>";
     echo $result;
    ?>