function uncompress($srcName, $dstName) {
$sfp = gzopen($srcName, "rb");
$dstName = str_replace('.gz', '', $dstName);
$fp = fopen($dstName, "w");
fseek($FileOpen, -4, SEEK_END);
$buf = fread($FileOpen, 4);
$GZFileSize = end(unpack("V", $buf));
while ($string = gzread($sfp, $GZFileSize)) {
fwrite($fp, $string, strlen($string));
}
gzclose($sfp);
fclose($fp);
}
我使用此代码进行解压缩,但它不起作用,并且出现以下错误:
内部服务器错误
服务器遇到内部错误或配置错误,并且已
无法完成您的请求。
请联系服务器管理员,[电子邮件受保护] /cdn-cgi/l/email-protection和
告知他们错误发生的时间以及您可能会发生的任何事情
所做的事情可能导致了错误。
有关此错误的更多信息可以在服务器错误中找到
日志。
此外,尝试使用 ErrorDocument 处理请求时遇到 404 Not Found 错误。
这个函数看起来很粗略。看来你正在重新实现stream_copy_to_stream()
在用户区。忘记缓冲区并简单地使用本机的东西。
function uncompress($srcName, $dstName)
{
$src = gzopen($srcName, 'rb');
$dst = fopen($dstName, 'wb');
stream_copy_to_stream($src, $dst);
gzclose($src);
fclose($dst);
}
想想看,你甚至可以使用copy()
function uncompress($srcName, $dstName)
{
copy('compress.zlib://' . $srcName, $dstName);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)