分离php和html ...为什么?

ian*_*ian 6 html php formatting

所以我看到了关于分离php和html的各种网站,页面和问题的一些评论.

我认为这意味着这样做:

<?php

myPhpStuff();

?>

<html>

<?php

morePhpStuff();

?>
Run Code Online (Sandbox Code Playgroud)

而不是:

<?php

    doPhpStuff();

    echo '<html>';

    ?>
Run Code Online (Sandbox Code Playgroud)

但为什么这很重要?是真的很重要还是偏好?


此外,似乎当我开始使用PHP时,在while循环中突破PHP会导致错误.也许这不再是真的,或者从来没有.


我用这个概念做了一个小例子,但对我来说它似乎很乱:

<?php

$cookies = 100;
while($cookies > 0)
{
    $cookies = $cookies -1;
?>
    <b>Fatty has </b><?php echo $cookies; ?> <b>cookies left.</b><br>

<?php

} 

?>
Run Code Online (Sandbox Code Playgroud)

是否存在将PHP内部包含在HTML中更好的实例?

<?php

$cookies = 100;
while($cookies > 0)
{
    $cookies = $cookies -1;

    echo'<b>Fatty has </b> '.$cookies.' <b>cookies left.</b><br>';
} 

?>
Run Code Online (Sandbox Code Playgroud)

Ste*_*dge 16

当人们谈论分离PHP和HTML时,他们可能指的是将网站的表示与用于生成它的代码分开的做法.

例如,假设您有一个DVD租赁网站,并在主页上显示了可用DVD的列表.您需要做几件事:从数据库获取DVD数据,提取和/或格式化该数据,并可能混合来自多个表的一些数据.将其格式化为输出,将DVD数据与HTML组合以创建用户将在其浏览器中看到的网页.

将HTML生成与其余代码分开是一种很好的做法,这意味着您可以轻松更改HTML输出(表示),而无需更改业务逻辑(读取和操作数据).反之亦然,您可以更改逻辑甚至是数据库,而无需更改HTML.

对此的常见模式称为MVC(模型视图控制器).您可能还想查看Smarty库 - 它是一个广泛使用的PHP库,用于分离表示和逻辑.


Csa*_*eri 8

让我们说清楚什么不是分离

  • 你从PHP模式切换到HTML模式
  • 你使用print或echo语句写出html代码
  • 你在html文件中使用小的php snipplets

如果你这样做,没有任何分离,无论你是从php转移到html块还是以其他方式做到并将php代码放入html.

看看一个好的模板引擎,手册中的"为什么使用......"部分有很多原因.我建议www.smarty.net特别是http://www.smarty.net/whyuse.php

现在,它将回答您的所有问题.