这两个php-gzdecode功能是否相同?

时间:2014-04-22 02:42:48

标签: php function gz

我遇到 PHP:调用未定义的函数gzdecode()错误 几天前,所以我一直在使用这个PHP

function gzdecode($data) 
{ 
   return gzinflate(substr($data,10,-8)); 
} 

参考:PHP: Call to undefined function gzdecode()

我在查看旧的php文件时发现了这个旧的代码片段,所以我可以使用上面的代码而不是这个吗?

function gzdecode($data) {
  $g=tempnam('/tmp', 'php-gz');
  @file_put_contents($g, $data);
  ob_start();
  readgzfile($g);
  $d=ob_get_clean();
  unlink($g);
  return $d;
}

1 个答案:

答案 0 :(得分:1)

如果您有权访问php.ini,只需启用zlib扩展程序即可使用gzencode。每种压缩方法都有一些细微差别。

请阅读@thomasrutter

的答案摘要https://stackoverflow.com/a/621987/382536

所有这些都可以使用。我会使用gzencode()因为它是自包含的;它的输出与使用gzip命令行工具的输出相同。

这三者之间并没有太大差异。

  • gzencode()使用完全独立的gzip格式,与 gzip命令行工具
  • gzcompress()使用原始ZLIB格式。它是 类似于gzencode,但标题数据较少,我认为是 用于流媒体。
  • gzdeflate()使用原始DEFLATE算法 它本身,这是其他格式的基础。