php fread讀取檔案有哪些需要注意的?

來源:互聯網
上載者:User
php fread() 函數用於讀取檔案(可安全用於二進位檔案)。本文章向大家介紹fread讀取檔案的執行個體以及使用該函數讀取檔案需要注意的幾個地方,需要的朋友可以參考一下。

php fread函數介紹

文法

fread(file,length)

參數

file 必需。規定要讀取開啟檔案。

length 必需。規定要讀取的最大位元組數。

說明

fread() 從檔案指標 file 讀取最多 length 個位元組。該函數在讀取完最多 length 個位元組數,或到達 EOF 的時候,或(對於網路流)當一個包可用時,或(在開啟使用者空間流之後)已讀取了 8192 個位元組時就會停止讀取檔案,視乎先碰到哪種情況。

返回所讀取的字串,如果出錯返回 false。

fread()執行個體:

從檔案中讀取 10 個位元組:

<?php$file = fopen("test.txt","r");fread($file,"10");fclose($file);?>

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讀取檔案總是會多一個Null 字元

$fileSize = filesize($filePath);$handle = fopen($filePath, "rb"); while (!feof($handle)) {    var_dump(fread($handle, $fileSize));    //會多輸出一次Null 字元}

當我們使用上面代碼讀取檔案,有時會多一個Null 字元。這是因為你是WINDOWS平台,檔案是文本開啟儲存的內容,末尾會有一個特殊位元組標識檔案結束,你用rb開啟自然就可以讀到最後那個特殊位元組了。用r開啟,fgets讀吧。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.