我获取了一个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/"
(为了转义反斜杠,但即使不转义也应该可以工作)。include
。我对PHP不够了解,所以不知道那些花哨的方法,可能更安全。
<pre>
标签不能保证内容会完全按照原样显示。例如:<pre><a>Hello</a></pre>
将显示为Hello,而不是<a>Hello</a>。要解决这个问题,可以使用<(小于号)和>(大于号)。如果需要实际的“&”符号,则可以使用&。
这个修改后的版本应该转义<、>和&。就安全性而言,请不要依赖此方法。
ob_start();
include ("myFile.html");
$html = ob_get_contents();
$html = str_replace("&", "&". $html);
$html = str_replace("<", "<". $html);
$html = str_replace(">", ">", $html);
$html = str_replace("\n", "<br/>");
<?php
header('Content-Type: text/plain; charset=UTF-8');
readfile("myFile.html");
要通过电子邮件发送HTML代码,可以从浏览器中复制HTML代码,也可以使用file_get_contents()调用HTML代码。然后必须将电子邮件格式设置为纯文本。
$html = file_get_contents()
? - user3783243htmlspecialchars($html)
应该可以完成工作,甚至可以将其包装在<pre>htmlspecialchars($html)</pre>
标签下。 - OMi Shah