首頁 > 後端開發 > php教程 > php 我用fwrite() 寫入了一個檔案,怎麼文件內容全變了?

php 我用fwrite() 寫入了一個檔案,怎麼文件內容全變了?

WBOY
發布: 2016-08-29 08:50:54
原創
1443 人瀏覽過

我用fwrite() 寫入了一個文件,怎麼文件內容全變了?
本來文件2.txt的內容是

<code>★★★★★★★★★★★★</code>
登入後複製
登入後複製

然後我執行了以下腳本:

<code>$res = fopen( "R:/2.txt"  ,"r+" );
fwrite( $res , "r" );
fclose( $res );</code>
登入後複製
登入後複製

結果2.txt 成了:

<code>r铩铩铩铩铩铩铩铩铩铩铩铩铩铩铩铩铩铩铩铩铩铩铩铩铩铩铩铩铩?</code>
登入後複製
登入後複製

請問這是怎麼回事?怎麼改正?

回覆內容:

我用fwrite() 寫入了一個文件,怎麼文件內容全變了?
本來文件2.txt的內容是

<code>★★★★★★★★★★★★</code>
登入後複製
登入後複製

然後我執行了以下腳本:

<code>$res = fopen( "R:/2.txt"  ,"r+" );
fwrite( $res , "r" );
fclose( $res );</code>
登入後複製
登入後複製

結果2.txt 成了:

<code>r铩铩铩铩铩铩铩铩铩铩铩铩铩铩铩铩铩铩铩铩铩铩铩铩铩铩铩铩铩?</code>
登入後複製
登入後複製

請問這是怎麼回事?怎麼改正?

因為這個五角星號一個字符佔用不止一個字節,你寫了r 覆蓋了第一個字節,導致之後的字符都被破壞了,因為正好第一個字符餘下字節和第二字符的第一個位元組正好可以拼成一個有效的編碼。
你如果想要截斷檔案的話,應該寫完後ftruncate。

是想追加內容?

http://php.net/manual/en/func...
fopen開啟方式選擇a的時候為追加寫入。

不用改,沒錯,只是編輯器錯誤的辨識了文件的編碼。 。 。

相關標籤:
php
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板