羊皮紙論壇目錄 / 程式設計 / 網頁/網站程式 / PHP /

unserialize() 偏移錯誤

發表新主題
隨機主題
上個主題
下個主題
|
unserialize() 偏移錯誤

今天遇到一個很奇怪的題,訊息如下

Notice: unserialize(): Error at offset 76 of 82 bytes

發生的情況是在為一個文件檔serialize()之後存檔,接著再從檔案中讀取出來,在讀取時就發生了這個問題,而且是只發生在新檔案內容比舊檔內容多的時侯。

一開始以為是 flock 的問題,後來發現有沒有用 flock 都一樣,但是用 Ajax 第二次作讀取的動作就正常,也就是說,在同一支程序裡,寫完檔案後再將同一個檔案讀出來,在程序結束以前都會是原先檔案的內容長度,但是內容卻是新的檔案內容,所以才會出現明明定義有 50 個字,實際上字串只有 40 個字,所以在串列記錄裡的長度欄( 76 的位罝)就會報錯囉,而 82 是舊檔的長度!

推論是 PHP 本身的 Bug ,同一程序同檔案寫入讀出,檔案的長度資訊出了問題,但不確定,有請各方高手賜教,

  • 關鍵字 : 問題, 同一, flock, 長度資訊出, 長度欄, 長度, 遇到一, 讀取, 訊息如下, 舊檔內容多, 舊檔, 第二, 程序裡, 發生, 為一, 檔案讀出來, 檔案後再, 檔案內容, 檔案, 本身
0 0
2009-10-23T18:59:37+0000

約小姐kk7417 :

!!! 本內容因會員違反網站政策已被隱蔽 !!!
0 0
2022-03-21T14:19:32+0000


  • 當您未登入羊皮紙時,可以利用臉書 Facebook 登入來發表迴響。若使用羊皮紙會員身份發表迴響則可獲得經驗值及虛擬金幣,用來參加羊皮紙推出的活動。
發表迴響
 
驗證字串