繁体   English   中英

获取 HTML 内容并将其显示为纯文本

[英]Get HTML content and show this as plain text

我得到一个 html 文件的内容:

ob_start();
include ("myFile.html");
$html = ob_get_contents();

现在我想通过邮件将 $html 作为纯文本发送以显示代码。 我试过"<pre>".$html."</pre>""<code>".$html."</code>"

但我没有得到纯代码。 你能帮助我吗?

尝试类似:

<?php

$filePath = __DIR__ . '/myFile.html';

$content = file_get_contents($filePath);
// Escape.
$content = htmlspecialchars($content);
// Makes lines visible.
$content = preg_replace('/\n/', '<br>' . PHP_EOL, $content);

echo $content;

请注意,我使用单引号来稍微提高性能,但是当使用双引号时,模式将是"/\\n/" (用于转义反斜杠,但即使没有转义也应该可以工作)。

我知道 Top-Master 回答了这个问题,但这是另一种方法,仍然使用include 我对 PHP 的了解不够多,无法了解可能更安全的花哨方法。

<pre>标签不保证内容会逐字显示。 例如<pre><a>Hello</a></pre>将显示为Hello ,而不是 <a>Hello</a>。 为了解决这个问题,您可以使用 &lt; (小于号)和 &rt; (大于符号)。 如果您需要和实际的 & 符号 ("&"),您可以使用 &amp;。

这个修改后的版本应该转义 <、> 和 &。 在安全性方面不要依赖于此。

ob_start();
include ("myFile.html");
$html = ob_get_contents();
$html = str_replace("&", "&amp;". $html);
$html = str_replace("<", "&lt;". $html);
$html = str_replace(">", "&gt;", $html);
$html = str_replace("\n", "<br/>");

要在浏览器中显示 HTML 代码,只需使用readfile()并将 header 设置为 Text/Plain。

<?php
header('Content-Type: text/plain; charset=UTF-8');
readfile("myFile.html");

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM