也就是说,测试我是否可以安全地gzinflate字符串.
如果我的压缩数据被篡改,我会收到“错误数据”警告.我不想压制警告,这意味着我要么必须捕获它,要么测试它是否可以被gzinflated.后者是我的首选解决方案,但我不知道如何.
适合下面的代码示例的东西将是完美的:
if(i_can_haz_inflate($data)) { // go ahead $source = gzinflate($data); } else { // bad data }
编辑:指定了gz(de | in)flate后我才意识到我实际上并不太关心压缩算法.在解压缩尝试之前是否有更适合检查完整性的内容?
如果gzinflate()不是gzdeflate()编码的字符串,则返回原始字符串.
最明显的检查是:
$deflated = @gzinflate($data); // to avoid getting a warning if ($data != $deflated && $deflated !== FALSE) { $source = gzinflate($data); }
我不认为还有另一种方法可以做到这一点.