PHP:打印HTML友好代码?
我想知道在从PHP函数打印HTML(多行)时,是否有任何技术可以让HTML代码看起来很好 特别是新行和选项卡。显然,我希望幕后的HTML标记在适当的新行和选项卡上看起来不错。但是,取决于何时调用打印HTML的PHP函数,我可能需要在1、2、3、4等处启动选项卡。我不想将启动选项卡计数传递给打印HTML的PHP函数 那么,有人知道用PHP打印HTML友好代码的通用方法吗?或者有没有一个设计原则是我缺少的,那就是“不要从一个PHP函数中打印多行HTML” 谢谢PHP:打印HTML友好代码?,php,coding-style,Php,Coding Style,我想知道在从PHP函数打印HTML(多行)时,是否有任何技术可以让HTML代码看起来很好 特别是新行和选项卡。显然,我希望幕后的HTML标记在适当的新行和选项卡上看起来不错。但是,取决于何时调用打印HTML的PHP函数,我可能需要在1、2、3、4等处启动选项卡。我不想将启动选项卡计数传递给打印HTML的PHP函数 那么,有人知道用PHP打印HTML友好代码的通用方法吗?或者有没有一个设计原则是我缺少的,那就是“不要从一个PHP函数中打印多行HTML” 谢谢 史蒂夫我不想麻烦了。有了Firebug
史蒂夫我不想麻烦了。有了Firebug这样的DOM检查工具,就没有必要浪费时间让设计用于计算机阅读的东西看起来很好。查看其他人对此问题的看法。使用模板系统生成HTML,并保持模板有序是一种简单的方法 有一些很棒的代码工具可以清理(即调整间距)和修复(即关闭打开的标记) Tidy是比较流行的html清理/修复工具之一。您可以使用php的输出缓冲区动态地通过Tidy解析脚本的输出 Zend开发区介绍- 整理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编写模板系统-分离Web应用程序中的业务逻辑和表示逻辑-您不应该使用php打印html。在模板中使用php的速记语法
<h1><?= $page_title ?></h1>
<p><?= page_content ?></p>
而不是
<?php
echo "<h1>" . $page_title . "</h1>";
echo "<p>" . $page_content . "</p>";
?>
如果您正在生成有效的xhtml,您可以在最后执行以下操作:
$dom = new DomDocument (('1.0', 'utf-8');
$dom->loadHtml (ob_get_clean ());
$dom->formatOutput = true;
echo $dom->saveXML ();
如果你使用的是一个框架,你可以把它作为一个插件或过滤器来使用。
通过这种方式,如果您将模板嵌入到其他模板中或使用helper的输出,它也可以工作我想您忘记了“此问题”的链接。谢谢。+1对于Firebug,每一个有效的HTML/XML都可以被解析,格式化是在浪费时间哇,这没什么意义。“你不应该用PHP打印HTML,用PHP在另一个PHP文件中打印它。”@nickf-如果你仔细看,你会发现我根本不打印HTML。你认为
$page\u content
和$page\u title
是什么?@nickf-“HTML是以HTML元素的形式编写的,包含在尖括号中的标记(如)”$page\u content
是用html标记的,它本身不是html。问题显然是如何用PHP整齐地格式化html代码。我不认为看到HTML将在PHP中生成并存储到名为$page\u content
的变量中是一种想象。例如:$page\u content=“你好,世界。”