亚洲最大看欧美片,亚洲图揄拍自拍另类图片,欧美精品v国产精品v呦,日本在线精品视频免费

  • 站長資訊網(wǎng)
    最全最豐富的資訊網(wǎng)站

    php文件操作之如何一次性獲得文件的全部數(shù)據(jù)

    在之前的文章《php文件操作之逐行讀取文件》中,我們介紹了逐行讀取文件的方法,然后利用循環(huán)我們可以獲取文件的全部數(shù)據(jù)。那如果不使用循環(huán),如何獲取文件的全部數(shù)據(jù)?本篇文章就給大家介紹一下不借助循環(huán),一次性獲得文件全部數(shù)據(jù)的方法。

    PHP中一次性讀取文件全部數(shù)據(jù)有多種方法,今天主要來了解兩個函數(shù)fread()和readfile()。

    我們有一個名為“test.txt”的文本文件,里面的內(nèi)容為:

    php文件操作之如何一次性獲得文件的全部數(shù)據(jù)

    首先我們來了解fread()函數(shù),看看下面的示例:

    <?php header("Content-Type: text/html;charset=utf-8");    //設置字符編碼 $file = "test.txt"; $handle = fopen($file, 'r');                 //打開文件 $contents = fread($handle, filesize($file));    //讀取文件內(nèi)容 echo $contents; fclose($handle);//關閉文件 ?>

    輸出結(jié)果:

    php文件操作之如何一次性獲得文件的全部數(shù)據(jù)

    可以看出,“test.txt”文件的內(nèi)容全部輸出了。

    其實,fread($handle,$length)函數(shù)的作用是讀取打開文件$handle中,指定$length字符長度的字符。但當$length參數(shù)的值被指定為 “filesize($file)”,那么就可以讀取整個文件的全部數(shù)據(jù)了。filesize()函數(shù)的作用是獲取文件大小,在 fread()函數(shù)中的作用就是讀取整個文件。

    使用fread()讀取整個文件,還要先打開文件,計算整個文件的大小,讀取完還要關閉文件,有復雜,有沒有更簡便的?答案是有,可以使用readfile()函數(shù)。

    我們看看下面的示例:

    <?php header("Content-Type: text/html;charset=utf-8");    //設置字符編碼 $file = "test.txt"; readfile($file);    //讀取文件內(nèi)容 ?>

    輸出結(jié)果:

    php文件操作之如何一次性獲得文件的全部數(shù)據(jù)

    是不是很簡單,直接使用一行代碼“readfile($file);”就可以一次性獲得文件的全部數(shù)據(jù)了;不需要打開或關閉文件,也不需要使用echo等輸出語句就可輸出文件內(nèi)容。

    下面我們來了解一下readfile()函數(shù)。

    readfile($filename,$include_path,$context)函數(shù)會讀取一個文件并將其寫入到輸出緩沖,同時返回從文件中讀入的字節(jié)數(shù)。

    該函數(shù)接受1個必需參數(shù)$filename(指定要讀取的文件名或文件路徑),2個可省略的參數(shù)$include_path$context。

    • $include_path參數(shù):設定是否想要在 include_path (在 php.ini 中)中搜索該文件,默認為 FALSE;如果想,則設置參數(shù)值為 '1'。

    • $context參數(shù):設置文件句柄的環(huán)境

    如果讀取失敗,readfile()函數(shù)會返回FALSE并附帶錯誤信息;我們可以通過在函數(shù)名前面添加一個 '@' 來隱藏錯誤輸出。

    @是一個錯誤控制運算符,將其放置在一個 PHP 表達式之前,該表達式可能產(chǎn)生的任何錯誤信息都將被忽略掉。

    好了就說到這里了,有其他想知道的,可以點擊這個哦。→ →PHP文件基礎操作

    推薦:《PHP面試題大匯總(收藏)》《php視頻教程》

    贊(0)
    分享到: 更多 (0)
    網(wǎng)站地圖   滬ICP備18035694號-2    滬公網(wǎng)安備31011702889846號