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

在PHP中格式化HTML长字符串的最佳方法是什么?

  •  4
  • dclowd9901  · 技术社区  · 14 年前

    我知道这确实是一个主观的问题,但对于最佳实践(和可读性),我似乎无法确定格式化长字符串HTML的最佳方法。我通常是这样做的:

    echo '
    <div>
        <p>Content Inside</p>
        <div class="subbox">
            <ul>
                <li>etc.</li>
                <li>etc.</li>
                <li>etc.</li>
                <li>etc.</li>
            </ul>
        </div>
    </div>
    ';
    

    但我还是不喜欢结果,特别是如果出现在一大块代码的中间。感觉很乱。

    6 回复  |  直到 9 年前
        1
  •  9
  •   Sampson    14 年前

    您可以跳出PHP直接输入HTML:

    <?php $var = "foo"; ?>
    <div>
      <ul>
        <li>Foo</li>
      </ul>
    </div>
    <?php $foo = "var"; ?>
    

    如果需要将HTML存储在变量中,可以使用 HEREDOC :

    $str = <<<EOD
    <div>
      <ul>
        <li>Foo</li>
      </ul>
    </div>
    EOD;
    
        2
  •  3
  •   John Conde    14 年前

    // PHP goes here
    ?>
    <div>
        <p>Content Inside</p>
        <div class="subbox">
            <ul>
                <li>etc.</li>
                <li>etc.</li>
                <li>etc.</li>
                <li>etc.</li>
            </ul>
        </div>
    </div>
    <?php
    // More PHP here
    
        3
  •  3
  •   tadamson    14 年前

    老式Perl风格 heredoc 同样有效:

    echo <<<EOL
    <div>
        <p>Content Inside</p>
        <div class="subbox">
            <ul>
                <li>etc.</li>
                <li>etc.</li>
                <li>etc.</li>
                <li>etc.</li>
            </ul>
        </div>
    </div>
    EOL;
    

    <?php ?>

        4
  •  2
  •   murze    14 年前

    我会这样做:

    echo '<div>
             <p>Content Inside</p>
             <div class="subbox">
                 <ul>
                     <li>etc.</li>
                     <li>etc.</li>
                     <li>etc.</li>
                     <li>etc.</li>
                </ul>
             </div>
          </div>';
    
        5
  •  2
  •   competent_tech    13 年前

    我更喜欢MVC架构,比如代码点火器,用于将表示与逻辑分离。基本上,您的所有模板都是单独存储的,并且您使用上面描述的PHP替代语法结构 here 格式化你的HTML。

        6
  •  1
  •   Lotus Notes    14 年前

    <html>
    <body>
    
    <h1><?php echo $title; ?></h1>
    <p><?php echo $myparagraph; ?></p>
    
    </body>
    </html>