The code below illustrates usage of the second parameter, in particular to protect against fatal out-of-memory errors. It outputs:
1000000
1000000
error
Tested with PHP 5.3 on 32bit Linux.
<?php
function tryToGzinflate($deflatedData, $maxLen = 0) {
$data = gzinflate($deflatedData, $maxLen);
if ($data === false)
echo 'error<br>';
else
echo strlen($data).'<br>';
}
$data = '';
for ($i = 0; $i < 1000000; $i++)
$data .= chr(mt_rand(97, 122)); $deflatedData = gzdeflate($data);
ini_set('memory_limit', '5M'); tryToGzinflate($deflatedData);
tryToGzinflate($deflatedData, strlen($data));
ini_set('memory_limit', '100'); tryToGzinflate($deflatedData, 100);
tryToGzinflate($deflatedData); ?>