0

誰かがこのコードの理由を説明できますか:

$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);

の待機出力を生成しませんStackOverflowか?

また、最初の例 ( ) のコードのコメント行のコメントを外すと//echo $strCompressed . " - ";、スクリプトは次のようなものを出力するStackOverflow - xś.ILÎö/K-JËÉ/ので、2 番目のStackOverflow -行がコメントアウトされていないことがわかります。どんな洞察も高く評価されます。

4

1 に答える 1

2

これを試して:

$strCompressed = file_get_contents($file);
echo gzuncompress($strCompressed);

readfileファイルの内容を返さず、出力します

于 2012-11-08T08:43:06.773 に答える