您好,登錄后才能下訂單哦!
這篇文章主要講解了“php fread讀取文件需要注意什么”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“php fread讀取文件需要注意什么”吧!
php fread函數介紹
string fread ( int handle, int length )
fread() 從文件指針 handle 讀取最多 length 個字節。該函數在讀取完最多 length 個字節數,或到達 EOF 的時候,或(對于網絡流)當一個包可用時,或(在打開用戶空間流之后)已讀取了 8192 個字節時就會停止讀取文件。
fread()實例:
<?php $file = "data.txt"; $fh = fopen($file, "rt"); $userdata = fread($fh, filesize($file)); fclose($fh); ?>
php使用fread需要注意的幾點
1、fread讀取寫入大文件出錯的解決辦法
使用fread讀取文件時如果超過php.ini中設置的最大內存使用值時 會提示錯誤,下面的方法解決讀取大文件的問題:
<? set_time_limit(0);//設置腳本執行時間無限長 $flie="flexbuilder_linux_install_a5_112409.bin";//大文件超過php.ini中的內存配置 $fp=fopen($flie,"r"); $content=""; $filename="123.bin";//存為新文件 $handle=fopen($filename,"a");//寫入方式打開,將文件指針指向文件末尾。如果文件不存在則嘗試創建之 while(!feof($fp)){//測試文件指針是否到了文件結束的位置 $content=fread($fp,1024); fwrite($handle,$content); } fclose($fp); fclose($handle); echo "數據成功寫入文件"; ?>
2、php fread()是如何識別文件編碼的
<?php $handler=fopen('a.txt','rb')//二進制方式打開 $content=fread($handler,1024); echo $content; ?>
fread以字符串形式返回,那它是如何識別a.txt使用的編碼方式的呢,才能保證不亂碼的呢?
PHP7.0以下的版本的文件操作中沒有識別字符編碼。
只是按字節數據輸出,如果和php源碼文件和輸出的html的字符編碼一致就能正確顯示。
3、fread讀取文件總是會多一個空字符
$fileSize = filesize($filePath); $handle = fopen($filePath, "rb"); while (!feof($handle)) { var_dump(fread($handle, $fileSize)); //會多輸出一次空字符 }
當我們使用上面代碼讀取文件,有時會多一個空字符。這是因為你是WINDOWS平臺,文件是文本打開存儲的內容,末尾會有一個特殊字節標識文件結束,你用rb打開自然就可以讀到最后那個特殊字節了。用r打開,fgets讀吧。
感謝各位的閱讀,以上就是“php fread讀取文件需要注意什么”的內容了,經過本文的學習后,相信大家對php fread讀取文件需要注意什么這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。