我想知道在从PHP函数打印HTML(多行)时是否有任何技术可以使HTML代码看起来很好?
特别是新行和标签。显然,我希望幕后的HTML标签看起来很好用新的线条和标签。但是,根据我何时调用打印HTML的PHP函数,我可能需要在1,2,3,4等处启动选项卡。我不想将启动选项卡计数传递给PHP正在打印HTML的函数。
那么,有没有人知道用PHP打印HTML友好代码的通用方法?或者是否有一个我缺少的设计原则,即“不要从PHP函数中打印多个HTML行”。 ......
谢谢,
史蒂夫
答案 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>";
?>