PHP:打印HTML友好代码?

时间:2010-03-01 00:59:11

标签: php coding-style

我想知道在从PHP函数打印HTML(多行)时是否有任何技术可以使HTML代码看起来很好?

特别是新行和标签。显然,我希望幕后的HTML标签看起来很好用新的线条和标签。但是,根据我何时调用打印HTML的PHP​​函数,我可能需要在1,2,3,4等处启动选项卡。我不想将启动选项卡计数传递给PHP正在打印HTML的函数。

那么,有没有人知道用PHP打印HTML友好代码的通用方法?或者是否有一个我缺少的设计原则,即“不要从PHP函数中打印多个HTML行”。 ......

谢谢,

史蒂夫

5 个答案:

答案 0 :(得分:2)

我不会打扰。随着像Firebug这样的DOM检查工具随时可用,没有必要浪费时间制作专为计算机设计的内容。有关此事的其他人的意见,请参见this question

答案 1 :(得分:1)

标记清理

有一些很棒的代码工具可以清理(即调整间距)和修复(即关闭打开的标签)。

整洁是最受欢迎的html清理/修复工具之一。您可以使用php的输出缓冲区通过Tidy解析脚本的输出。

Zend Dev Zone介绍 - http://devzone.zend.com/article/761 PHP手册中的整洁文档 - http://www.php.net/manual/en/book.tidy.php

现在,这是一个微不足道的例子,耶!

<?php
ob_start();

echo '<div><b> messy</b> <div> <i>blarg</I></div>';
echo '  <div>code rawr!</div>';

$output = ob_get_clean();

$tidy = tidy_parse_string($output);
tidy_clean_repair($tidy);
echo $tidy;
?>

模板系统

您应该使用模板系统来分离应用程序的逻辑(php代码)和表示(html / markup / etc)部分。

使用这种做法有许多优点,其中包括使代码更易于维护和调试。

这是一个讨论的话题,几乎总是进入框架和MVC。有数以千计的资源,这里有几个:P

用PHP编写模板系统 - http://www.codewalkers.com/c/a/Display-Tutorials/Writing-a-Template-System-in-PHP/
将业务逻辑与Web应用程序中的表示逻辑分离 - http://www.paragoncorporation.com/ArticleDetail.aspx?ArticleID=21

答案 2 :(得分:1)

如果你正在生成有效的xhtml,你可以buffer your output,最后,那样做:

$dom = new DomDocument (('1.0', 'utf-8');
$dom->loadHtml (ob_get_clean ());
$dom->formatOutput = true; 
echo $dom->saveXML ();

如果您使用的是框架,则可以将其作为插件或过滤器使用。 这样,如果您将模板嵌入到其他模板或使用帮助

的输出,它也可以工作

答案 3 :(得分:0)

使用模板系统生成HTML,并保持模板的顺序是一种简单的方法

答案 4 :(得分:0)

你不应该用php打印html。在模板中使用php的简写语法。

<h1><?= $page_title ?></h1>
<p><?= page_content ?></p>

而不是

<?php

echo "<h1>" . $page_title . "</h1>";
echo "<p>" . $page_content . "</p>";

?>