反正有没有从PHP生成可读的HTML源代码?

时间:2013-06-28 15:59:50

标签: php html

我对php不是很有经验,所以如果有一个简单的功能,我会觉得自己像个白痴。

在PHP编码时,在需要回显一些HTML代码时,我发现我有两种选择之一。

答:echo "<!--html text here-->";

B:echo "\t\t\t<!--html text here-->\n";

如果我在整个代码中使用方法A,那么使用view-source查看来自客户端的php代码会产生一个难以阅读的可靠代码块。

如果我使用方法B,它在客户端看起来很好,但实际的源代码看起来很乱。

无论如何都要保持服务器端和客户端外观干净吗?

5 个答案:

答案 0 :(得分:2)

像这样的东西

<?php 
//php code here
?>

//html code
<h3> <?= $justADynamicVariable ?> </h3>
<?php
//continue php code
 ?>

答案 1 :(得分:1)

不可读的前端代码是由PHP代码的因子分解不良引起的

由于您的代码很乱,因此会出现文本墙问题。你有相同位置的逻辑和显示代码(从你从PHP块回显H​​TML的事实可以明显看出),这将总是产生难以理解和丑陋的代码。

查看Model-View-Controller pattern,并从显示代码中分离出您的逻辑代码。然后,使用一些内联PHP编写主​​显示HTML格式的显示代码:

<div>
    Welcome back <?= $this->username; ?>
</div>

如果您不得不从PHP块中回显HTML代码,那么您的代码可能是错误的。

产生可读代码的其他有用技巧:

使用其他PHP控制块

此:

<div id='somediv'>
<?php if($something): ?>
    Some stuff
<?php endif; ?>
</div>

比这更具可读性:

<div id='somediv'>
<?php if($something) { ?>
    Some stuff
<?php } ?>
</div>

它肯定比你现在正在使用的更好:

<?php
    echo "<div id='somediv'>";
    if($something) {
        echo "Some stuff";
    }
    echo "</div>";
?>

答案 2 :(得分:0)

你可以关闭php标签(?&gt;),编写html块并返回php(

答案 3 :(得分:0)

有许多方法可以生成HTML,取决于它是单行还是整个HTML块。

重要的是可读性。

echo "<div><p>Hi ".$name."</p></div>";

不是不可读的persé,它可能很烦人,因为它不会在许多IDE中突出显示。 这是一个总是分离html和php的好理由,这意味着总是将html部分放在php标签之外。

所以你可以在之前结束你的php块并在之后再次打开它:

if(TRUE) {
?>
    <div><p>Hi <?php echo $name;?></p></div>
<?php 
}

如果你在一个大部分包含html的大文件中都有PHP,你最好使用php control blocks

<!--html text here-->
<?php if(TRUE):?>
    <div>
        <p>Hello <?php echo $name;?></p>
    </div>
</php endif;?>
<!--html text here-->

您也可以使用heredoc

echo <<<EOD
        <div>
            <p>This is html</p>
        </div>
EOD;

output buffering

ob_start();
?>
    <div>
        <p>Hello <?php echo $name;?></p>
    </div>
<?php
$html = ob_get_clean();

echo $html;

答案 4 :(得分:0)

使用模板引擎,如Twig http://twig.sensiolabs.org/,它允许您将逻辑从模板中分离出来,这样您就可以使用简单的语法编写非常容易标记的动态变量。

使用Chrome等浏览器,当您使用网络开发者工具http://discover-devtools.codeschool.com/时,它会自动缩进您的来源。您甚至可以将结果快速复制粘贴到新文件中。一般来说,由于软件可以很容易地清理它,因此担心输出间隔很好的html是个坏主意。