PHP显示源代码而不是.html文件
如果标题有点混乱,我很抱歉,但这是我的问题:PHP显示源代码而不是.html文件,php,Php,如果标题有点混乱,我很抱歉,但这是我的问题: 我需要使用PHP回显.html文件的源代码。我尝试使用PHP include();虽然文件的扩展名是.html.txt,但它显示的好像是。当我直接访问该文件时,例如“example.com/file.html.txt”,它显示为一个普通的.txt文件 这是我用来显示文件的PHP代码: <div> <?php include "../head.php"; $path = $_GET["p"]; ?> <div style=
我需要使用PHP回显.html文件的源代码。我尝试使用PHP include();虽然文件的扩展名是.html.txt,但它显示的好像是。当我直接访问该文件时,例如“example.com/file.html.txt”,它显示为一个普通的.txt文件
这是我用来显示文件的PHP代码:
<div>
<?php
include "../head.php";
$path = $_GET["p"];
?>
<div style="position:absolute; top:90px; padding-left:5px; padding-right:10px;">
<?php
echo "<code>";
include("files/".$path);
echo "</code>";
?>
</div>
我希望我可以理解!:)提前感谢您的帮助 如果要在HTML文件中输出HTML标记,请使用
htmlspecialchars()
转义特殊字符。如果要在HTML文件中输出HTML标记,请使用htmlspecialchars()
转义特殊字符。不要使用include()
,而是读取文件内容并打印它们(别忘了逃跑)
如果用户输入的是$path
,则应确保无法访问任何敏感信息。使用可确保不可能进行目录遍历
<code>
<?php
// $path = basename($path);
$html = file_get_contents("files/".$path);
echo htmlspecialchars($html);
?>
</code>
不要使用include()
,而是读取文件内容并打印出来(不要忘记转义)
如果用户输入的是$path
,则应确保无法访问任何敏感信息。使用可确保不可能进行目录遍历
<code>
<?php
// $path = basename($path);
$html = file_get_contents("files/".$path);
echo htmlspecialchars($html);
?>
</code>
如果您想在浏览器中查看html源代码,最好的方法是通过函数htmlentities()或类似函数运行它。棘手的部分是将include的文件内容获取到字符串中,以便您可以这样做。为此,我们使用ob_start()和ob_get_clean()。这些基本上是启动一个输出缓冲区,然后获取输出缓冲区的内容,以便您可以对其进行处理和回显
<div>
<?php
include "../head.php";
$path = $_GET["p"];
?>
<div style="position:absolute; top:90px; padding-left:5px; padding-right:10px;">
<?php
echo "<code>";
ob_start();
include("files/".$path);
echo htmlentities(ob_get_clean());
echo "</code>";
?>
</div>
如果您希望能够在浏览器中查看html源代码,最好的方法是通过函数htmlentities()或类似函数运行它。棘手的部分是将include的文件内容获取到字符串中,以便您可以这样做。为此,我们使用ob_start()和ob_get_clean()。这些基本上是启动一个输出缓冲区,然后获取输出缓冲区的内容,以便您可以对其进行处理和回显
<div>
<?php
include "../head.php";
$path = $_GET["p"];
?>
<div style="position:absolute; top:90px; padding-left:5px; padding-right:10px;">
<?php
echo "<code>";
ob_start();
include("files/".$path);
echo htmlentities(ob_get_clean());
echo "</code>";
?>
</div>
Include不安全。如果您的文件包含PHP代码,它将被执行。 您应该使用以下方法:
echo htmlspecialchars(file_get_contents('yourfile.html'));
Include不安全。如果您的文件包含PHP代码,它将被执行。 您应该使用以下方法:
echo htmlspecialchars(file_get_contents('yourfile.html'));
我建议将其包装在文本区域中。简单快速
echo "<textarea>";
include "/filename.txt";
echo "</textarea>";
echo”“;
包括“/filename.txt”;
回声“;
有时候,当我们在寻找非常简单的东西时,我们会忽略显而易见的东西。:o)我建议将其包装在文本区域中。简单快捷
echo "<textarea>";
include "/filename.txt";
echo "</textarea>";
echo”“;
包括“/filename.txt”;
回声“;
有时候,当我们在寻找非常简单的东西时,我们忽略了显而易见的东西:o)我闻到你的代码中有一个巨大的安全漏洞
?p=../../../some/upload/file/containing/malistic/php/code
此外,您可能希望使用
,而不是
。如果您显示的文件内容需要先由php处理,请使用我的方法,否则,请使用file get contents方法或love方法之一。不管你做什么,都不要把这个代码放在互联网上,因为这是一个严重的安全漏洞。谢谢大家,我从你们所有人那里学到了很多东西!:D突出显示_文件($file,true)代码>我闻到你的代码中有一个巨大的安全漏洞?p=../../../some/upload/file/containing/malistic/php/code
此外,您可能希望使用
,而不是
。如果您显示的文件内容需要先由php处理,请使用我的方法,否则,请使用file get contents方法或love方法之一。不管你做什么,都不要把这个代码放在互联网上,因为这是一个严重的安全漏洞。谢谢大家,我从你们所有人那里学到了很多东西!:D突出显示_文件($file,true)代码>@ColeJohnson是的,同意。那会更有效率的哈哈。但是,如果include文件是.php,这可能是处理内容所必需的,尽管这在安全方面也是相当危险的。@ColeJohnson,同意。那会更有效率的哈哈。但是,如果include文件是.php,则这可能是处理内容所必需的,尽管这在安全方面也是相当危险的。