???今天遇到一個很奇怪的題,訊息如下
Notice: unserialize(): Error at offset 76 of 82 bytes
發生的情況是在為一個文件檔serialize()之後存檔,接著再從檔案中讀取出來,在讀取時就發生了這個問題,而且是只發生在新檔案內容比舊檔內容多的時侯。
一開始以為是 flock 的問題,後來發現有沒有用 flock 都一樣,但是用 Ajax 第二次作讀取的動作就正常,也就是說,在同一支程序裡,寫完檔案後再將同一個檔案讀出來,在程序結束以前都會是原先檔案的內容長度,但是內容卻是新的檔案內容,所以才會出現明明定義有 50 個字,實際上字串只有 40 個字,所以在串列記錄裡的長度欄( 76 的位罝)就會報錯囉,而 82 是舊檔的長度!
推論是 PHP 本身的 Bug ,同一程序同檔案寫入讀出,檔案的長度資訊出了問題,但不確定,有請各方高手賜教,
- Keywords : flock, 長度資訊出, 請各方高手賜教, 舊檔內容多, 程序結束以前, 檔案讀出來, 新檔案內容, 文件檔serialize, 才會出現明明定義, 就會報錯囉, 實際上字串只, 同一程序同檔案寫入讀出, 動作就正常, 再從檔案中讀取出來, 串列記錄裡, unserialize, offset, bytes, Notice, Error
00
2009-10-23T18:59:37+0000


