输出将HTML呈现为纯文本

时间:2014-11-20 08:09:01

标签: php html view-source

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

文本也应包含HTML标记。

当你做一个"查看来源"时,你会得到什么?在网页上。

我怎样才能做到这一点?

5 个答案:

答案 0 :(得分:9)

由于您已经提到您希望输出与查看源类似,因此您只需在脚本开头将内容类型声明为纯文本。

这将输出呈现为文本,文本文件可下载。

前:

<?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);

答案 1 :(得分:1)

尝试使用php的show_source();函数。

为其提供指向您的文字文件的链接,例如

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

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

答案 2 :(得分:1)

要做到这一点,最简单的方法是捕获发送到输出的所有内容并缓冲它。最后,您可以决定是否要像往常一样呈现它,或者是否要使用htmlspecialchars()来显示源。

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

$outputType = 'viewsource';
ob_start();

在代码的最后,添加以下内容:

$output = ob_get_contents();
ob_end_clean();
if($outputType == 'viewsource') {
    echo htmlspecialchars($output);
} else {
    echo $output;
}

答案 3 :(得分:0)

有多种方法可以执行此操作,最简单的方法是使用pre标记,或者您可以将文件从.php重命名为.phps,或使用highlight_file($file)这也是语法突出你的代码。 @hackitect也提到了file_get_contents()甚至show_source()

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

答案 4 :(得分:0)

实际 用于执行此操作的另一个技巧是在其中创建包含view-source网址的超链接。

完美适用于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>