PHP - 缩进html块

Web*_*ner 5 php syntax indentation line-breaks

假设我有以下代码:

<?php
echo "<div id=\"root\">";
echo "<div id=\"child_of_root\">";
echo "<img src=\"picture1.png\">";
echo "<img src=\"picture2.png\">";
echo "<img src=\"picture3.png\">";
echo "<img src=\"picture4.png\">";
echo "<img src=\"picture5.png\">";
echo "</div>";
echo "</div>";
?>
Run Code Online (Sandbox Code Playgroud)

如果我运行这个,下面的HTML将呈现所有内联而没有任何换行符:

<div id="root"><div id="child_of_root"><img src="picture1.png"><img src="picture2.png"><img src="picture3.png"><img src="picture4.png"><img src="picture5.png"></div></div>
Run Code Online (Sandbox Code Playgroud)

如果我运行以下代码:

<?php
echo "<div id=\"root\">\n";
echo "\t"."<div id=\"child_of_root\">\n";
echo "\t\t"."<img src=\"picture1.png\">"."\n";
echo "\t\t"."<img src=\"picture2.png\">"."\n";
echo "\t\t"."<img src=\"picture3.png\">"."\n";
echo "\t\t"."<img src=\"picture4.png\">"."\n";
echo "\t\t"."<img src=\"picture5.png\">"."\n";
echo "\t"."</div>"."\n";
echo "</div>";
?>
Run Code Online (Sandbox Code Playgroud)

它创造了以下漂亮的HTML:

<div id="root">
  <div id="child_of_root">
    <img src="picture1.png">
    <img src="picture2.png">
    <img src="picture3.png">
    <img src="picture4.png">
    <img src="picture5.png">
  </div>
</div>
Run Code Online (Sandbox Code Playgroud)

有没有办法我可以实现这些美丽的缩进,而不必放在\t我想要缩进的每一行之前.我是说我可以缩进一个块而不是一行.

Dom*_*nes 11

首先,它是HTML标记,所以它的格式无关紧要,浏览器渲染它都是一样的.使用像Firebug这样的工具可以为您提供更好的方法来浏览网页中的HTML.

另一方面,您不必持续使用echo命令来输出HTML.PHP本身或多或少是一种模板语言,因此您可以退出PHP,以您自己的格式输出HTML,然后重新输入PHP.

例如:

<?php // ... your code before this ... ?>
<div id="root">
    <div id="child_of_root">
        <img src="picture1.png">
        <img src="picture2.png">
        <img src="picture3.png">
        <img src="picture4.png">
        <img src="picture5.png">
    </div>
</div>
<?php // ... your code after this ... ?>
Run Code Online (Sandbox Code Playgroud)

如果你的输出需要一定程度的动态,你总是可以使用PHP来添加循环和诸如此类的东西.

<?php // ... your code before this ... ?>
<div id="root">
    <div id="child_of_root">
        <?php for ($x = 1; $x <= 5; $x++): ?>
            <img src="picture<?php echo $x; ?>.png">
        <?php endfor; ?>
    </div>
</div>
<?php // ... your code after this ... ?>
Run Code Online (Sandbox Code Playgroud)

如果您仍然需要格式化HTML,可能用于显示代码示例或其他内容,您可能需要继续手动使用\n\t,或者您可以查看PHP Tidy扩展,它是为格式化HTML而构建的.


hsz*_*hsz 6

首先使用:

echo '<img src="picture1.png">';
Run Code Online (Sandbox Code Playgroud)

代替

echo "<img src=\"picture1.png\">";
Run Code Online (Sandbox Code Playgroud)

代码更清晰.

如果要在PHP中返回HTML代码,则没有其他方法可以进行缩进.

但是,为什么要在PHP中打印HTML代码?你不能在这里退出PHP块吗?

<?php
// do something and exit PHP block
?>
<div id="root">
  <div id="child_of_root">
    <img src="picture1.png">
    <img src="picture2.png">
    <img src="picture3.png">
    <img src="picture4.png">
    <img src="picture5.png">
  </div>
</div>
<?php
// do again something in PHP
?>
Run Code Online (Sandbox Code Playgroud)