首頁 >後端開發 >PHP問題 >php如何將檔案全部資料存入一個字串中

php如何將檔案全部資料存入一個字串中

青灯夜游
青灯夜游原創
2021-08-06 15:09:153711瀏覽

在之前的文章中我們介紹了一次性讀取整個文件,獲取全部數據的方法,感興趣的可以點擊鏈接查看《php文件操作之如何一次性獲得文件的全部數據 》。今天我們再介紹一個一次讀取整個檔案的方法,有需要的可以參考參考。

今天要介紹給大家的方法,不僅可以一次讀取整個文件,還可以將讀取的文件內容存入一個字串中,是不是很神奇。這就要用到一個PHP內建函數file_get_contents(),今天就來了解這個函數。

還是以「test.txt」檔案為例,該檔案裡面的內容為:

php如何將檔案全部資料存入一個字串中

#我們先來看看如何使用file_get_contents()函數讀取文件,將內容存入字串中。

<?php
header("Content-Type: text/html;charset=utf-8");    //设置字符编码
$file = &#39;test.txt&#39;;
$filestr = file_get_contents($file);
if($filestr){
  echo $filestr;
}else{
  echo &#39;读取失败!&#39;;
}
?>

輸出結果:

php如何將檔案全部資料存入一個字串中

可以看出,不需要開啟或關閉檔案動作,直接使用「file_get_contents($file )」語句就可以一次讀取整個檔案了,這一點和之前介紹的readfile()函數很像,但它們還是有所不同的:file_get_contents()函數會將讀取的資料存入一個字串中,而readfile()函數是存入輸出緩衝。

因此readfile()函數不需要echo、print等輸出語句就可以輸出,直接「readfile($file);」就行;而file_get_contents()函數需要藉助輸出語句才能將讀取的內容進行輸出,「echo file_get_contents($file)」。

下面我們來具體了解file_get_contents()函數的用法:

file_get_contents($filename,$include_path,$context,$offset,$max_length)函數只有一個必要參數$filename(要讀取的文件,可以是文件名,也可以是文件路徑),但有4個可省略的參數:$include_path(預設值FALSE )、$context(檔案句柄環境,值可為NULL)、$offset(開始讀取的位置)、$max_length(讀取位元組數)。

其中,不能對遠端檔案使用$offset參數;如果省略$max_length參數,則會和上面範例那樣,預設讀取檔案的全部內容。

下面我們來看看$offset$max_length參數。

<?php
header("Content-Type: text/html;charset=utf-8");    //设置字符编码
$file = &#39;test.txt&#39;;
$filestr1 = file_get_contents($file,FALSE,NULL,3);
echo $filestr1;
$filestr2 = file_get_contents($file,FALSE,NULL,0,15);
echo "<br>".$filestr2;
?>

輸出結果:

php如何將檔案全部資料存入一個字串中

可以看出,$max_length參數設定為15,卻只取得了7個字符,這是為什麼呢?

那是因為:在file_get_contents()函數中一個 UTF-8 編碼的漢字佔三個字元長度。而如果設定的獲取長度不夠,無法取得到的那個中文字符,就會顯示為號。

<?php
header("Content-Type: text/html;charset=utf-8");    //设置字符编码
$file = &#39;test.txt&#39;;
$filestr1 = file_get_contents($file,FALSE,NULL,6);
echo $filestr1;
$filestr2 = file_get_contents($file,FALSE,NULL,0,16);
echo "<br>".$filestr2;
$filestr3 = file_get_contents($file,FALSE,NULL,0,18);
echo "<br>".$filestr3;
?>

輸出結果:

php如何將檔案全部資料存入一個字串中

好了就說到這裡了,有其他想知道的,可以點擊這個哦。 → →php影片教學

 最後給大家推薦閱讀一個經典課程《PHP字串處理(玉女心經版)》,免費的~快來學習啊!

以上是php如何將檔案全部資料存入一個字串中的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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