2013-02-15 104 views
1

我可以在一个字符串中编写HTML代码并返回它,但它总是看起来有点混乱。有没有更好的解决方案?更好的HTML内的返回函数?

例1 - 新线HTML

与HTML每一行新行。一种非常混乱的方式来编写HTML代码。

function my_function() 
{ 
    $html = '<div class="hello">'; 
    $html .= 'A very long text'; 
    $html .= '</div>'; 
    return $html; 
} 

实施例2 - HTML块

仍然是一个混乱的方式来写HTML代码。另一个缺点是写'引用'字符比较困难。

function my_function() 
{ 
    $html = ' 
     <div class="hello"> 
      A very long text 
     </div>'; 

    return $html; 
} 

实施例3 - ob_get_contents

我可以使用ob_get_contents。它将我的PHP与我的HTML分开,很好!但我已经读过,这是糟糕的表现。

function my_function() 
{ 
    ob_start(); 
    ?> 
     <div class="hello"> 
      A very long text 
     </div>'; 
    <?php 
    $html = ob_get_contents(); 
    ob_end_clean(); 
    return $html; 
} 

问题

是否有另一种方式来保持HTML从PHP在一个不错的方式?

+0

你可能已经想到了这一点已,但以防万一 - 有一个原因,你不能有在模板中的HTML,并加载? – Mike 2013-02-15 14:51:46

+0

源代码中的空白导致性能问题,有一个模板库。但我不认为你需要这样的东西 – Sedz 2013-02-15 14:55:06

+0

@Grant Thomas由于HTML文件的大小会更大,因此不要在PHP中呈现浏览器上的HTML文件,您可以检查谷歌页面的速度。 – Sedz 2013-02-15 15:02:31

回答

1

您可以使用一种模板形式,其中您的HTML结构存储在带有占位符值的模板文件中,您可以使用该模板文件读入,并将占位符值替换为实际内容。

这样,你只是在阅读一个字符串,做一堆'替换'来转换,并返回结果。

0

“是否有另一种方法可以很好地保持PHP中的HTML?”

  • 是 - 你应该阅读有关MVC以及如何实现它的PHP
1

是,也不是,

任的3个例子远远形成目标(例如,使用Smarty)。 “保持php远离html”。在他们之内,他们不会比其他人更好。

保持表示层与逻辑连接并不是一个好的做法。
这两种解决方案都不是我们可以直接向初学者提出的。最简单的学习曲线就是使用模板引擎,比如smarty。

http://www.smarty.net/

这将有助于你保持你的演示文稿从您的代码有点远。

但是人们普遍接受的策略是MVC将软件分为三层。模型视图和控制器。本文给出了关于什么是mvc专注于php的简单解释。

http://onlamp.com/pub/a/php/2005/09/15/mvc_intro.HTML

还有其他的架构和,许多人认为更好,但这个是基础,我相信实践。

0

简单的想法保持两个相距:

//php function 
    function stuff(){ 
      $arr = array(); 
      $arr['text'] = 'A very long text'; 
      $arr['class'] = 'hello'; 


     return $arr; 
     } 

HTML页面:

<html> 
<?php $thing = stuff(); ?> 


<div class="<?php echo $thing['class']; ?>"> 
<?php echo $thing['text']; ?> 
</div> 

</html>