Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/275.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP:打印HTML友好代码?_Php_Coding Style - Fatal编程技术网

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

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

特别是新行和选项卡。显然,我希望幕后的HTML标记在适当的新行和选项卡上看起来不错。但是,取决于何时调用打印HTML的PHP函数,我可能需要在1、2、3、4等处启动选项卡。我不想将启动选项卡计数传递给打印HTML的PHP函数

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

谢谢


史蒂夫

我不想麻烦了。有了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=“你好,世界。”