有没有办法在PHP中回显整个.html文件的内容?
例如,我有一个名为sample.html的文件,我想要回显该文件名,以便它的内容被显示出来。
你应该使用 readfile()
:
readfile("/path/to/file");
这将读取文件并在一条命令中将其发送到浏览器。本质上与以下内容相同:
echo file_get_contents("/path/to/file");
除此之外,file_get_contents()
可能会因为大文件而导致脚本崩溃,而 readfile()
则不会。
echo readfile()
吗?因为 readfile()
返回文件的长度(看起来是 1191 字节),如果在 readfile()
前面添加 echo
,它将在打印文件后打印长度。只需删除 echo
即可正常工作。 :) - Frxstrem只需使用:
<?php
include("/path/to/file.html");
?>
这将同时输出它。这样做的好处是执行文件中的任何PHP代码。
如果您需要对内容进行操作,请使用file_get_contents()函数,
例如:
<?php
$pagecontents = file_get_contents("/path/to/file.html");
echo str_replace("Banana", "Pineapple", $pagecontents);
?>
这不会执行该文件中的代码,因此如果您希望它起作用,请小心。
我通常使用以下方式:
include($_SERVER['DOCUMENT_ROOT']."/path/to/file/as/in/url.html");
因此,我可以在不破坏包含文件的情况下移动文件。
readfile
可以正常工作,但是 include
对于图片似乎无法正常工作...... header('Content-Type: image/png'); include('test.png');exit;
显示的是一张 "损坏" 的图片。 - Pacerierinclude
来回显任意文件的内容。如果攻击者成功上传了一个 PHP 文件,并且您在其上调用了 include
,那么您就会面临远程代码执行漏洞的风险。请改用 readfile()
。 - cbr如果你想确保HTML文件不包含任何PHP代码并且不会被当作PHP执行,不要使用include
或者require
。仅需这样操作:
echo file_get_contents("/path/to/file.html");
Include
或readfile()
。 - Vyktor