有人可以解释为什么这个代码:
$str = "StackOverflow";
echo $str . " - ";
$strCompressed = gzcompress($str);
//echo $strCompressed . " - ";
$strUncompressed = gzuncompress($strCompressed);
echo $strUncompressed . " - ";
给出预期的输出:StackOverflow - StackOverflow -
但是这段代码(从文件中写入和读取):
$str = "StackOverflow";
$strCompressed = gzcompress($str);
$file = "test.cache";
$fp = fopen($file, "w");
fwrite($fp, $strCompressed);
fclose($fp);
$strCompressed = readfile($file);
echo gzuncompress($strCompressed);
不产生 wated 输出StackOverflow
?
另外,我想知道,如果我取消注释第一个示例 ( //echo $strCompressed . " - ";
) 中注释的代码行,脚本将输出如下内容:StackOverflow - xś.ILÎö/K-JËÉ/
,因此您可以看到没有第二个StackOverflow -
示例,因为该行被注释掉了。任何见解都值得赞赏。