在我的HTML中,我有一个包含文件的php脚本。此时,代码缩进了2个选项卡。我想做的是让php脚本为每一行添加两个选项卡。这是一个例子:
主页:
<body>
<div>
<?php include("test.inc"); ?>
</div>
</body>
和“test.inc”:
<p>This is a test</p>
<div>
<p>This is a nested test</p>
<div>
<p>This is an more nested test</p>
</div>
</div>
我得到了什么:
<body>
<div>
<p>This is a test</p>
<div>
<p>This is a nested test</p>
<div>
<p>This is an more nested test</p>
</div>
</div>
</div>
</body>
我想要的是什么:
<body>
<div>
<p>This is a test</p>
<div>
<p>This is a nested test</p>
<div>
<p>This is an more nested test</p>
</div>
</div>
</div>
</body>
我意识到我可以在include文件中添加前导标签。但是,当我格式化文档时,VS会继续删除它们。
答案 0 :(得分:6)
在test.inc文件中,您可以使用output buffering捕获PHP脚本的所有输出,然后再将其发送到浏览器。然后,您可以对其进行后处理以添加所需的选项卡,然后将其发送。在文件的顶部,添加
<?php
ob_start();
?>
最后,添加
<?php
$result = ob_get_contents();
ob_end_clean();
print str_replace("\t" . $result, "\n", "\n\t");
?>
我不一定订阅此解决方案 - 它可能是内存密集型的,具体取决于您的输出,并会阻止您的包含文件在工作时向客户端发送部分结果。您可能最好重新格式化输出,或者使用某种形式的自定义“打印”包装器来标记事物(并使用heredocs打印以获得持续的HTML输出)。
编辑:使用str_replace,如评论
所示答案 1 :(得分:1)
我认为您的解决方案无法轻松完成。在将源代码呈现给客户端之前,您可以考虑使用HTML Tidy来清理源代码。在互联网上有good tutorials。
答案 2 :(得分:0)
最简单的解决方案是将前导标签添加到包含文件,但不使用文字标签,而是使用\t
转义序列。