Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP显示源代码而不是.html文件_Php - Fatal编程技术网

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,则这可能是处理内容所必需的,尽管这在安全方面也是相当危险的。