代码之家  ›  专栏  ›  技术社区  ›  kevzettler

如何保持PHP“查看源代码”html输出干净[重复]

  •  8
  • kevzettler  · 技术社区  · 16 年前

    今天在一个网站上查看了消息来源后,这让我很恼火。我在模板中使用PHP输出来处理动态内容。模板仅以html格式开始,并且缩进和格式化都很干净。然后添加PHP内容并缩进以匹配html格式。

    <ul>
      <li>nav1</li>
      <li>nav2</li>
      <li>nav3</li>
    </ul>
    

    成为:

    <ul>
      <?php foreach($navitems as $nav):?>
      <li><?=$nav?></li>
      <?php endforeach; ?>
    </ul>
    

    12 回复  |  直到 16 年前
        1
  •  13
  •   soulmerge    16 年前

    这也让我感到困扰。你能做的最好的事情就是使用整洁来对文本进行后处理。将此行添加到页面的开头(并做好准备 output buffering 当您在输出缓冲打开的情况下遇到第一个PHP错误时会造成严重破坏):

    ob_start('ob_tidyhandler');
    
        2
  •  6
  •   Marquis Wang    16 年前
        3
  •  4
  •   stefs    16 年前

    我承认,我也喜欢干净、缩进整齐的html。通常情况下,事情并没有按照我想要的方式发展,原因和你一样。有时手动缩进和换行符不会被保留,或者因为重置缩进的子模板而无法使用。

    *sigh*

    你的错误。

        4
  •  4
  •   Some Canuck    16 年前

    剩余的空白。

        5
  •  4
  •   user373100    15 年前

        <ul>
    <?php foreach($navitems as $nav):?>
          <li><?=$nav?></li>
    <?php endforeach; ?>
        </ul>
    

    基本上,我的所有条件句和循环块都齐平地留在视图中。如果它们是嵌套的,我会在PHP开始标记内缩进,如下所示:

        <ul>
    <?php foreach($navitems as $nav):?>
    <?php     if($nav!== null) : ?>
          <li><?=$nav?></li>
    <?php     endif; ?>
    <?php endforeach; ?>
        </ul>
    

    这样,当我浏览代码时,我可以清楚地看到表示逻辑,这也有助于干净的HTML输出。块内的输出正是我放置它们的地方。

    ?> 。当您在内部执行诸如输出之类的操作时,这会成为一个问题 <pre> 块。

    <pre>
    <?php foreach($vars as $var ) ?>
        <?=$var?>
    <?php endforeach; ?>
    </pre>
    

    <pre> 
                0            1            2            3            4            5        </pre> 
    

    <?=$var?>

    很抱歉代码块过多,但这也困扰了我很长时间。希望它能在大约7个月后有所帮助。

        6
  •  3
  •   Christian    16 年前

    print "<table>\n";
    print "\t<tr>\n";
    print "\t\t<td>\n";
    print "\t\t\tMy Content!\n";
    print "\t\t</td>\n";
    print "\t</tr>\n";
    print "</table>\n";
    
        7
  •  3
  •   Joe Conlin    13 年前

    当我读到“我真的很好奇为什么你认为生成“可读”的HTML很重要。不幸的是,这个页面(和其他地方)上有很多人这样认为……浏览器读取它的方式是一样的,所以为什么要担心代码的外观。

    首先,在几乎所有情况下,保持“代码”的可读性都会使调试(或通常由您或开发人员在未来使用)变得更加容易。

    此外,最重要的是,它被称为 汽车 它们都会把你从“A”点带到“B”点。但是,区别在于产品的质量,主要是什么 看到。没有什么比跳进一个项目,首先必须清理别人的代码才能理解事情更糟糕的了,这一切都是因为他们认为它仍然是一样的,并且对他们所做的事情没有自豪感。更干净的代码总是会让你和任何其他必须处理它的人受益,更不用说反映出你对自己所做的工作的自豪感和专业知识了。

        8
  •  2
  •   Fenton    16 年前

    如果这在你的具体情况下真的很重要,你可以这样做。..

    <ul><?php foreach($navitems as $nav):?>
      <li><?=$nav?></li><?php endforeach; ?>
    </ul>
    

    虽然在我看来情况更糟,因为你的代码可读性较差,即使HTML是你想要的。

        9
  •  2
  •   Alister Bulman    16 年前

    如果我在检查输出,如果需要仔细查看,我会把它整理干净——但验证器也不在乎额外的空格或标签。

        10
  •  1
  •   user205392 user205392    16 年前

    查看未格式化的源代码非常烦人,因为有多个嵌套的div和许多记录,每个记录都包含这些div。。

    我偶然发现了一个名为Phoenix Editor的firefox插件。你可以在它的编辑器中查看你的源代码,然后点击“格式化”,它就像一个魅力!

    Link Here

        11
  •  1
  •   Joseph King    14 年前

    http://www.phpxtemplate.org/HomePage 它不像id那样有很好的记录,但我使用它取得了很大的效果

    你会有这样的东西

        <?php
    $response = new xtemplate('template.htm');
    
    foreach($navitems as $item)
    {
    
    $response->assign('stuff',$item);
    
    $response->parse('main.thelist');
    
    }
    $response->parse('main');
    $response.out('main');
    ?>
     And the html file would contain
    
        <! -- BEGIN: main -->
    <html>
    <head></head>
    <body>
        <ul>
    <! -- BEGIN: thelist -->
          <li>{stuff}</li>
    <!-- END: thelist -->
    </ul>
    </body>
    </html>
    
        12
  •  1
  •   BenMorel Manish Pradhan    12 年前

    </ < > /> </