PHP显示源代码而不是.html文件

And*_*rey 0 php

如果标题有点令人困惑,我很抱歉,但这是我的问题:
我需要使用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>
Run Code Online (Sandbox Code Playgroud)

我希望我能理解!:) 在此先感谢您的帮助!

sve*_*ens 5

不要使用include(),阅读文件的内容并打印它们(不要忘记逃避).

在您的情况下$path是用户输入,您应该确保不能访问敏感信息.使用basename($path);确保不可能进行目录遍历.

<code>
<?php
    // $path = basename($path);
    $html = file_get_contents("files/".$path);
    echo htmlspecialchars($html);
?>
</code>
Run Code Online (Sandbox Code Playgroud)