Jér*_*nge 12 php function undefined
我收到一个奇怪的错误消息与下面的PHP代码(我不是PHP专家):
if ( $file_loc != NULL ) {
if ( file_exists($file_loc) ) {
printf(" file exists");
$handle = fopen($file_loc, "rb");
$contents = fread($handle, filesize($file_loc));
fclose($handle);
$result = gzdecode($contents);
}
}
Run Code Online (Sandbox Code Playgroud)
我基本上是尝试从gzip压缩文件中加载文本内容.我收到以下错误:
Fatal error: Call to undefined function gzdecode() in ...\sites\MyScripts\fw2.php on line 80
Run Code Online (Sandbox Code Playgroud)
然而,当我看一下文档时,似乎我不需要包含额外的库,或者我错了?我该如何解决这个问题?
UPDATE
接下来的问题是检查我的电脑上是否安装了这个库,答案是肯定的,确实如此.
来自PHP信息:

所以这变得越来越混乱......
更新II
我试过了:
<?php
echo phpversion().", ";
if (function_exists("gzdecode")) {
echo "gzdecode OK, ";
} else {
echo "gzdecode no OK, ";
}
if (extension_loaded('zlib')) {
echo "zlib extension loaded ";
} else {
echo "zlib extension not loaded ";
}
?>
Run Code Online (Sandbox Code Playgroud)
我得到:
5.2.17, gzdecode no OK, zlib extension loaded
Run Code Online (Sandbox Code Playgroud)
use*_*069 18
除非PHP符合zlib,否则gzdecode不可用.根据一些消息来源,它可能包含在PHP 6中.请注意本手册中几乎所有函数在变为/可用时都给出了PHP版本号.奇怪的是,他们认为不需要显示警告信息.
对没有校验和的gzdecode尝试此代码(适用于我):
function gzdecode($data)
{
return gzinflate(substr($data,10,-8));
}
Run Code Online (Sandbox Code Playgroud)
它并不总是安装。从文档:
默认情况下未启用 PHP 中的 Zlib 支持。您将需要配置 PHP --with-zlib[=DIR]
PHP 的 Windows 版本内置了对此扩展的支持。您无需加载任何其他扩展即可使用这些功能。
编辑:由于这仍然是公认的答案,我对其进行了编辑以添加建议作为替代的功能。
function gzdecode($data) {
return gzinflate(substr($data,10,-8));
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
15612 次 |
| 最近记录: |