gpt4 book ai didi

php - 在安全模式服务器中是否有替代 php readfile() 的方法?

转载 作者:行者123 更新时间:2023-12-03 23:04:52 25 4
gpt4 key购买 nike

我在共享主机上托管我的网站,该主机最近将服务器更改为安全模式(甚至没有通知)。我使用从服务器下载文件的功能,使用 readfile() 函数(我使用 php)。现在,在安全模式下,这个功能不再可用。是否有替代方法或解决方法来处理用户可以下载文件的情况?

谢谢

最佳答案

正如我在评论中所写,readfile() 通过将其包含在 disable_functions php.ini 指令中来禁用。它与安全模式无关。尝试检查哪些功能被禁用,看看您是否可以使用任何其他文件系统功能(-s)来执行 readfile() 的操作。

要查看禁用函数的列表,请使用:

var_dump(ini_get('disable_functions'));

您可能会使用:

// for any file
$file = fopen($filename, 'rb');
if ( $file !== false ) {
fpassthru($file);
fclose($file);
}

// for any file, if fpassthru() is disabled
$file = fopen($filename, 'rb');
if ( $file !== false ) {
while ( !feof($file) ) {
echo fread($file, 4096);
}
fclose($file);
}

// for small files;
// this should not be used for large files, as it loads whole file into memory
$data = file_get_contents($filename);
if ( $data !== false ) {
echo $data;
}

// if and only if everything else fails, there is a *very dirty* alternative;
// this is *dirty* mainly because it "explodes" data into "lines" as if it was
// textual data
$data = file($filename);
if ( $data !== false ) {
echo implode('', $data);
}

关于php - 在安全模式服务器中是否有替代 php readfile() 的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6329223/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com