我有一個函數可以跟蹤通過腳本發生的事件。爲了有效利用我的資源,我決定壓縮它生成的數據。不過,我不斷收到此錯誤:帶文件讀寫錯誤的PHP gzuncompress
Unknown error type: [2] gzuncompress() [function.gzuncompress]: data error
這裏的功能:
function eventlog($type, $message){
// Types: account,run,queue,system
// Set up file name/location
$eventfile = '/myprivatedirectory/'.date('Ymd').$type.'.log';
if(file_exists($eventfile)){
while(!is_writable($eventfile)){clearstatcache();}
$fh_log = fopen($eventfile,'r+');
flock($fh_log, LOCK_EX);
$logcontents = gzuncompress(fread($fh_log,filesize($eventfile)));
rewind($fh_log);
ftruncate($fh_log, 0);
$logcompressed = gzcompress($logcontents.$message."\n");
fwrite($fh_log,$logcompressed);
flock($fh_log, LOCK_UN);
fclose($fh_log);
} else {
$fh_log = fopen($eventfile,'w');
flock($fh_log, LOCK_EX);
$logcompressed = gzcompress($message."\n");
fwrite($fh_log,$logcompressed);
flock($fh_log, LOCK_UN);
fclose($fh_log);
}
}
所以每天,在午夜,如上述任何事件的發生創造了一個新的錯誤日誌(帳戶,運行,隊列,系統),否則每個新事件都附加到尊重日誌文件。
我很想保持壓縮,但我不能有這些錯誤,任何人都可以請幫忙嗎?提前致謝。
'file_put_contents'會爲您節省很多麻煩。 – Jon 2012-03-19 10:12:54
我正在用'file_get_contents'來試試這個,至今沒問題。 – 2012-03-19 21:17:52