6

我试图将 PHP 文件抛出的渲染输出显示为文本。

文本也应该包含 HTML 标签。

类似于您在网页上执行“查看源代码”时会得到的东西。

我怎样才能做到这一点?

4

5 回答 5

11

由于您提到您希望输出就像查看源代码一样,您可以在脚本的开头简单地将内容类型声明为纯文本。

这会将输出呈现为文本,并且文本文件是可下载的。

前任:

<?php
header("Content-Type: text/plain");
echo '<html><head><title>Hello</title></head><body><p>helloooooo</p></body></html>';
echo $_SERVER['REMOTE_ADDR'];
?>

希望这是有道理的,否则如果您想向用户显示它,另一种方法是通过 htmlspecialchars(); 传递输出。功能。

前任:

$content = '<html><head><title>Hello</title></head><body>p>helloooooo</p></body></html>';
echo htmlspecialchars($content);
于 2014-11-20T08:25:34.060 回答
1

为此,最简单的方法是捕获发送到输出的所有内容并将其缓冲。最后,您可以决定是否要像往常一样渲染它,或者是否要用于htmlspecialchars()显示源。

在代码的开头,放置以下语句:

$outputType = 'viewsource';
ob_start();

在代码的末尾,添加以下内容:

$output = ob_get_contents();
ob_end_clean();
if($outputType == 'viewsource') {
    echo htmlspecialchars($output);
} else {
    echo $output;
}
于 2014-11-20T08:32:15.653 回答
1

尝试使用 php 的show_source(); 功能。

给它一个指向您的文本文件的链接,例如

show_source("/link/to/my_file.html");

小心它,因为它可能会暴露密码和其他敏感信息

于 2014-11-20T08:14:36.503 回答
0

我实际上用来执行此操作的另一个技巧是使用其中的视图源 url 创建一个超链接。

在 Chrome、Firefox 和 Opera 上完美运行,但在 IE 上无法运行。

<a target="_blank" href="view-source:http://stackoverflow.com/questions/27034642/output-rendered-html-as-plain-text">Get Plain Text</a>

于 2014-11-23T07:58:45.203 回答
0

有多种方法可以做到这一点,最简单的一种是使用pre标签,或者您可以将文件从.phpto重命名.phps,或者使用highlight_file($file)which 也语法高亮您的代码。还有file_get_contents(),甚至show_source()正如@hackitect 所提到的。

但请记住,任何 html 代码都必须在pre标签内输出并转义。

于 2014-11-20T08:18:13.203 回答