首頁 >後端開發 >php教程 >php檔案操作之如何一次獲得文件的全部數據

php檔案操作之如何一次獲得文件的全部數據

青灯夜游
青灯夜游原創
2021-08-05 15:41:505243瀏覽

在先前的文章《php檔案操作之逐行讀取檔案》中,我們介紹了逐行讀取檔案的方法,然後利用循環我們可以取得檔案的全部資料。那如果不使用循環,如何取得文件的全部資料?本篇文章就跟大家介紹一下不借助循環,一次取得文件全部資料的方法。

PHP中一次讀取檔案全部資料有多種方法,今天主要來了解兩個函數fread()和readfile()。

我們有一個名為「test.txt」的文字文件,裡面的內容是:

php檔案操作之如何一次獲得文件的全部數據

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

<?php
header("Content-Type: text/html;charset=utf-8");    //设置字符编码
$file = "test.txt";
$handle = fopen($file, &#39;r&#39;);                 //打开文件
$contents = fread($handle, filesize($file));    //读取文件内容
echo $contents;
fclose($handle);//关闭文件
?>

輸出結果:

php檔案操作之如何一次獲得文件的全部數據

#可以看出,「test.txt」檔案的內容全部輸出了。

其實,fread($handle,$length)函數的作用是讀取開啟檔案$handle中,指定$length字符長度的字元。但當$length參數的值被指定為 “filesize($file)”,那麼就可以讀取整個檔案的全部資料了。 filesize()函數的作用是取得檔案大小,在 fread()函數中的作用就是要讀取整個檔案。

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

我們看看下面的範例:

<?php
header("Content-Type: text/html;charset=utf-8");    //设置字符编码
$file = "test.txt";
readfile($file);    //读取文件内容
?>

輸出結果:

php檔案操作之如何一次獲得文件的全部數據

#是不是很簡單,直接使用一行程式碼「readfile($file);」就可以一次取得文件的全部資料了;不需要開啟或關閉文件,也不需要使用echo等輸出語句就可輸出檔案內容。

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

readfile($filename,$include_path,$context)函數會讀取一個檔案並將其寫入輸出緩衝,同時傳回從檔案讀入的位元組數。

此函數接受1個必要參數$filename(指定要讀取的檔案名稱或檔案路徑),2個可省略的參數$include_path$context

  • $include_path參數:設定是否想要在include_path (在php.ini 中)中搜尋該文件,預設為FALSE;如果您想,則設定參數值為'1'。

  • $context參數:設定檔案句柄的環境

如果讀取失敗,readfile()函數會傳回FALSE並附帶錯誤訊息;我們可以透過在函數名稱前面加上一個'@' 來隱藏錯誤輸出。

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

好了就說到這裡了,有其他想知道的,可以點選這個喔。 → →PHP檔案基礎操作

#推薦:PHP面試題大匯總(收藏)》《php影片教學

以上是php檔案操作之如何一次獲得文件的全部數據的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn