《PHP實(shí)例:php fread讀取文件注意事項(xiàng)》要點(diǎn):
本文介紹了PHP實(shí)例:php fread讀取文件注意事項(xiàng),希望對(duì)您有用。如果有疑問(wèn),可以聯(lián)系我們。
php fread函數(shù)介紹PHP學(xué)習(xí)
string fread ( int handle, int length )
PHP學(xué)習(xí)
fread() 從文件指針 handle 讀取最多 length 個(gè)字節(jié).該函數(shù)在讀取完最多 length 個(gè)字節(jié)數(shù),或到達(dá) EOF 的時(shí)候,或(對(duì)于網(wǎng)絡(luò)流)當(dāng)一個(gè)包可用時(shí),或(在打開(kāi)用戶空間流之后)已讀取了 8192 個(gè)字節(jié)時(shí)就會(huì)停止讀取文件.PHP學(xué)習(xí)
fread()實(shí)例:PHP學(xué)習(xí)
<?php $file = "data.txt"; $fh = fopen($file, "rt"); $userdata = fread($fh, filesize($file)); fclose($fh); ?>
php使用fread需要注意的幾點(diǎn)PHP學(xué)習(xí)
1、fread讀取寫(xiě)入大文件出錯(cuò)的解決辦法PHP學(xué)習(xí)
使用fread讀取文件時(shí)如果超過(guò)php.ini中設(shè)置的最大內(nèi)存使用值時(shí) 會(huì)提示錯(cuò)誤,下面的方法解決讀取大文件的問(wèn)題:PHP學(xué)習(xí)
<? set_time_limit(0);//設(shè)置腳本執(zhí)行時(shí)間無(wú)限長(zhǎng) $flie="flexbuilder_linux_install_a5_112409.bin";//大文件超過(guò)php.ini中的內(nèi)存配置 $fp=fopen($flie,"r"); $content=""; $filename="123.bin";//存為新文件 $handle=fopen($filename,"a");//寫(xiě)入方式打開(kāi),將文件指針指向文件末尾.如果文件不存在則嘗試創(chuàng)建之 while(!feof($fp)){//測(cè)試文件指針是否到了文件結(jié)束的位置 $content=fread($fp,1024); fwrite($handle,$content); } fclose($fp); fclose($handle); echo "數(shù)據(jù)成功寫(xiě)入文件"; ?>
2、php fread()是如何識(shí)別文件編碼的PHP學(xué)習(xí)
<?php $handler=fopen('a.txt','rb')//二進(jìn)制方式打開(kāi) $content=fread($handler,1024); echo $content; ?>
fread以字符串形式返回,那它是如何識(shí)別a.txt使用的編碼方式的呢,才能保證不亂碼的呢?PHP學(xué)習(xí)
PHP7.0以下的版本的文件操作中沒(méi)有識(shí)別字符編碼.PHP學(xué)習(xí)
只是按字節(jié)數(shù)據(jù)輸出,如果和php源碼文件和輸出的html的字符編碼一致就能正確顯示.PHP學(xué)習(xí)
?3、fread讀取文件總是會(huì)多一個(gè)空字符PHP學(xué)習(xí)
$fileSize = filesize($filePath); $handle = fopen($filePath, "rb"); while (!feof($handle)) { var_dump(fread($handle, $fileSize)); //會(huì)多輸出一次空字符 }
當(dāng)我們使用上面代碼讀取文件,有時(shí)會(huì)多一個(gè)空字符.這是因?yàn)槟闶荳INDOWS平臺(tái),文件是文本打開(kāi)存儲(chǔ)的內(nèi)容,末尾會(huì)有一個(gè)特殊字節(jié)標(biāo)識(shí)文件結(jié)束,你用rb打開(kāi)自然就可以讀到最后那個(gè)特殊字節(jié)了.用r打開(kāi),fgets讀吧.PHP學(xué)習(xí)
通過(guò)此文希望能幫助到大家,謝謝大家對(duì)本站的支持!PHP學(xué)習(xí)
轉(zhuǎn)載請(qǐng)注明本頁(yè)網(wǎng)址:
http://www.snjht.com/jiaocheng/3215.html