混合php和html

use*_*579 1 php

如果我可以要求答案不要指向框架或其他图书馆,我将不胜感激.我知道这些,并且基于快速小黑客的经验更多的回答.

从一些基础html开始

 <html>
      <head>
           <meta http-equiv="Content-type" content="text/html; charset=utf-8" />
           <title>Page Title</title>
      </head>
      <body>
         // something is going to happen here, could be more html, or php
      </body>
 </html>
Run Code Online (Sandbox Code Playgroud)

假设您将拥有数百页,当然,您希望以一种减少代码重复的方式对其进行模块化.

我已经看过,使用过和辩论过许多策略.

基本包括方法:

的header.inc.php

 <html>
      <head>
           <meta http-equiv="Content-type" content="text/html; charset=utf-8" />
           <title>Page Title</title>
      </head>
      <body>
Run Code Online (Sandbox Code Playgroud)

footer.inc.php

      </body>
 </html>
Run Code Online (Sandbox Code Playgroud)

所有数百个php页面的存根:

<?php include 'header.inc.php'; ?>
    // html or other php can go here
<?php include 'footer.inc.php'; ?>
Run Code Online (Sandbox Code Playgroud)

得到更多的幻想,并有一个var.inc.php,你可以设置$ page_title并在第一个包含前面,节省编辑数百页的时间.

功能方法:

show.inc.php

function display_header($page_title) {
     echo "
     <html>
          <head>
               <meta http-equiv="Content-type" content="text/html; charset=utf-8" />
               <title>$page_title</title>
          </head>
          <body>";

}
Run Code Online (Sandbox Code Playgroud)

你对页脚做同样的事情,我怀疑你明白了.我知道你们当时很多人都在想对象,我也想避免讨论这个问题.

考虑一下,你正试图教一个非常小的孩子一些原则,或者你试图让一个设计师进入某种形式的现代时代.

哪种方法,你开始遇到你将在浏览器中查看html和php的输出的情况.浏览器的源输出有一个非常清晰的选项卡缩进和结构.大多数时候,看一下网站的来源,我看到html非常糟糕.所有一行,或不同形式的缩进.

如何以简单的方式解决这个问题?

那个display_header()函数会在整个地方或空格中吐出,这取决于你的编辑器,它会使渲染的输出变得一团糟.

有这个选项:

function display_header($page_title) {
    echo '<html>';
    echo '<head>';
    echo "\t" . '<meta http-equiv="Content-type" content="text/html; charset=utf-8" />';
    echo "\t" . '<title>' . $page_title . '</title>';
    echo '</head>';
    echo '<body>';

}
Run Code Online (Sandbox Code Playgroud)

然后,你会遇到以下情况:

 echo '<table>';
 foreach ($variable as $item) {
      echo '<tr><td>' . $item . '</td></tr>';
 }
 echo '<table>';
Run Code Online (Sandbox Code Playgroud)

 echo "\t" . '<table>' . "\n";
 foreach ($variable as $item) {
      echo "\t\t". '<tr><td>' . $item . '</td></tr>' . "\n";
 }
 echo "\t" . '<table>' . "\n";
Run Code Online (Sandbox Code Playgroud)

而现在,你刚刚搞砸了你的PHP.所以我开始考虑输出缓冲区,我将完全让设计师对这个概念感到不满.但我只是混合了更多的HTML与PHP,我会感到自豪.

老实说,我从来没有能够解决这个问题:

<?php foreach ($variable as $item) { ?>
 ....
<?php } ?>
Run Code Online (Sandbox Code Playgroud)

两者都产生了更好的生成html,但对我来说,它也产生了一个更复杂的PHP文件.非常基本的问题,我相信会有一些强烈的意见,并希望推动框架和OOP.我理解这些方法,但同样,我正在寻找最好的建议,为那些永远不会对编程充满热情的人提供一些工具,并且只是希望以有助于提高效率的方式完成工作.

Ben*_*mes 6

编写PHP时忘记HTML输出的缩进.否则你会花费太多时间来担心一些完全无关紧要的事情.

如果您需要清理HTML输出以使设计人员更容易阅读,请通过Tidy运行它.如果这看起来效率低下,请记住,您只需要在开发中进行此操作,而不是在生产中.