PHP 找不到 ob_gzhandler 函数,导致无法创建缓冲区。- ob_start('ob_gzhandler');
复制代码- PHP Warning: ob_start(): function "ob_gzhandler" not found or invalid function name in /server/wuxiancheng.cn/misc.php on line 20
- PHP Notice: ob_start(): Failed to create buffer in /server/wuxiancheng.cn/misc.php on line 20
复制代码 ob_gzhandler() 依赖于 PHP zlib 扩展,如果没有编译 zlib 扩展,或者编译成了动态加载的扩展文件而又没有动态加载 zlib 扩展,ob_gzhandler() 不会存在,就会导致以上错误。
在命令行窗口运行以下命令可以查看 PHP 加载了哪些扩展。如果不能在命令窗口运行 PHP,可以使用 get_loaded_extensions() 函数在 PHP 脚本中运行查看。
如果没有编译 PHP zlib 扩展,需要重新编译 PHP。编译 PHP 时需要加入以下选项之一。--with-zlib 静态编译 zlib 扩展,不会在扩展目录生成扩展文件,而是将 zlib 扩展编译进 PHP 可执行文件中,不需要动态加载。
--with-zlib=shared 动态编译 zlib 扩展,会在扩展目录生成扩展文件,需要在 php.ini 中加载。
如果扩展目录有 PHP zlib 扩展文件 zlib.so 或 php_zlib.dll(Windows),打开生效的 php.ini 配置文件,加入以下配置参数。PHP 官方提供下载的 Windows 版 PHP 通常将 zlib 静态编译进了二进制文件,不需要加载扩展文件,也不会出现找不到 ob_gzhandler() 的错误。
相关链接 ob_gzhandler zlib |
|