函数中的“echo”或“echo”所有页面?

时间:2010-03-22 16:22:32

标签: php

这是保存变量中所有索引然后回显的好方法吗?例如

<?php
    $txt='<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
   <html xmlns="http://www.w3.org/1999/xhtml">
   <head>
   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-9" />
   <link rel="stylesheet" type="text/css" href="css/style.css"/>
   <title>Untitled Document</title>
   </head>

   <body>
  <div class="wrapper">
      <div class="header">
        <h2>'.heaf_func().'</h2>
      </div>
      <div class="content">content</div>
      <div class="footer">footer</div>
  </div>
  </body>
  </html>';
  echo $txt;

?>

4 个答案:

答案 0 :(得分:8)

我个人会将你的例子改为这样;

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
   <html xmlns="http://www.w3.org/1999/xhtml">
   <head>
   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-9" />
   <link rel="stylesheet" type="text/css" href="css/style.css"/>
   <title>Untitled Document</title>
   </head>

   <body>
  <div class="wrapper">
      <div class="header">
        <h2><?php echo heaf_func(); ?></h2>
      </div>
      <div class="content">content</div>
      <div class="footer">footer</div>
  </div>
  </body>
  </html>

答案 1 :(得分:2)

一般来说,没有。如果您需要进行输出缓冲,只需使用the output buffering API即可。即使您需要检索输出以对其进行后处理,您也可以使用ob_get_contents执行此操作。在大多数页面上都不会有什么大不了的,但是在大页面或大量服务器负载下,你应该使用输出缓冲支持,因为它更适合你想要完成的任务。

一般来说,在查看诸如您正在考虑的方法时,请问自己“这对我有什么影响?”您上面的示例显然是微不足道的,但除非您计划对结果进行后期处理,否则它会带给您什么?

修改

我在各种项目中都使用了PHP-in-XML和XML-in-PHP方法。我的经验是,在任何大小的项目中,PHP-in-XML(或HTML,但我总是尝试生成XML或XHTML)最终变成令人讨厌的意大利面条代码变得难以维护,而XML-in- PHP方法最终会成为一堆你不想维护的字符串操作代码。

一般来说,我建议使用MVC(MVVM,MVP等 - 由您决定)框架,适用于每个Web应用程序,无论语言如何。如果正确应用,额外的框架复杂性不仅可以通过您获得的模块化和易维护性和可扩展性来补偿。如果您觉得不需要或希望定位框架(但是,我强烈推荐它),我通常会遵循以下规则:

  1. 尽可能将PHP-in-XML限制为简单包含值。例如,<h1><?php echo $title; ?></h1>尽量避免在你的意大利面条代码中包含逻辑(除了重复之外,尽管我通常也会将其抽象出来)。
  2. 尽可能使用XML API创建XML文档,而不是将原始值写入输出。 XML具有易于转换的优势,根据我的经验,这非常值得额外的初始投资,至少在生产应用程序中。
  3. 使用xml-stylesheet处理指令向客户端发送表示数据的XML文档,该指令指示要应用于呈现的样式表的位置,并让客户端执行自己的呈现。如果做不到这一点,将数据到表示转换逻辑放在样式表(XSLT,而不是CSS)中,并进行转换服务器端。我非常喜欢它允许我的数据和演示之间的分离。

答案 2 :(得分:1)

问题是你想要这样做的原因。只是把它放在一个变量然后回显它是不值得的,但如果你需要进一步处理字符串(字符串替换等)它是有用的。

答案 3 :(得分:0)

如果您要进行大规模的多行文本转换量分配,请考虑使用HEREDOC语法,这样做的好处是不会强制转义引号,这会使文本失效blob更容易阅读和剪切/粘贴到其他东西而无需调整。

至于选择是否应该使用PHP-in-HTML或HTML-in-PHP,这一切都归结为哪一个更具可读性。如果您有500行HTML,并且只插入一小部分PHP,那么请使用PHP-in-HTML,反之亦然。为了达到接近均衡的目的,无论你喜欢什么,它都会出现。