微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决在安全模式服务器中,是否有php readfile的替代方法?

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

解决方法

        如我在评论中所写,通过将ѭ0包含在
disable_functions
php.ini指令中来禁用它。它与安全模式无关。尝试检查禁用了哪些功能,并查看是否可以使用任何其他文件系统功能来执行
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);
}
    ,        我假设您正在使用“ 5”来加载远程文件,如您所说的“从服务器”。如果是正确的话,那么您的问题就不是安全模式,而是不再允许使用常规的php文件功能打开URL(禁用设置
allow_url_fopen
)。 在这种情况下,您可以使用PHP的curl函数下载文件。同样,
file_get_contents
是有效的选择。     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。