首頁 >後端開發 >PHP問題 >php怎麼逐行將整個文件資料存入陣列中

php怎麼逐行將整個文件資料存入陣列中

青灯夜游
青灯夜游原創
2021-08-06 16:11:103929瀏覽

在上一篇文章中我們介紹了又給大家介紹了一種一次性讀取整個文件的方法,並且該方法可以將讀取到時內容存入一個字符串中,感興趣的可以點擊《php如何將檔案全部資料存入一個字串中》檢視。以下繼續介紹一次性讀取整個文件的方法。

上篇文章中的方法,會在一行輸出檔案的全部內容,檔案資料少還好,如果檔案資料太多,例如:

php怎麼逐行將整個文件資料存入陣列中

#使用file_get_contents()函數來讀取輸出:

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

輸出結果為

php怎麼逐行將整個文件資料存入陣列中

#可以看出這樣輸出的內容不利於閱讀了。那麼怎麼做可以逐行輸出文件全部內容呢?可以藉助數組。

可以先一次讀取整個文件,並將資料逐行存入數組,每一行資料對應一個數組元素即可。

我們來看看下面的程式碼:

<?php
header("Content-Type: text/html;charset=utf-8");    //设置字符编码
$file = &#39;test.txt&#39;;
$filearr = file($file,FILE_IGNORE_NEW_LINES);
var_dump($filearr);
?>

輸出結果:

php怎麼逐行將整個文件資料存入陣列中

#是不是便於閱讀了,有時需要讀取全部內容,但暫時只需要其中的一行數據,就可以使用數組名[下標] 的形式來取指定行的數據。例如想要第三行的數據,那麼可以:

<?php
header("Content-Type: text/html;charset=utf-8");    //设置字符编码
$file = &#39;test.txt&#39;;
$filearr = file($file,FILE_IGNORE_NEW_LINES);
echo $filearr[2];  //数组下标是从0开始的
?>

輸出結果:

php怎麼逐行將整個文件資料存入陣列中

#下面我們來了解裡面的關鍵函數file()

file($filename,$flags,$context)函數接受一個必要參數$filename(要讀取的檔案),兩個可省略的參數$flags$context(檔案句柄的環境)。

但一般還是會設定$flags參數的,該參數可以是以下一個或多個常數:

  • FILE_USE_INCLUDE_PATH:在include_path (在php.ini 中)中尋找文件,預設為FALSE;如果想,則設定參數值為'1'。

  • FILE_IGNORE_NEW_LINES:在陣列每個元素的結尾不要加上換行符號;

  • FILE_SKIP_EMPTY_LINES:跳過空白行。

例如上例,如果省略“FILE_IGNORE_NEW_LINES”,輸出會是這樣的:

php怎麼逐行將整個文件資料存入陣列中

而如果一個檔案包含空行:

php怎麼逐行將整個文件資料存入陣列中

使用上例中的程式碼讀取文件,輸出結果為:

php怎麼逐行將整個文件資料存入陣列中

##就可以設定“FILE_SKIP_EMPTY_LINES”來跳過空白行,並讀取下一行資料。

<?php
header("Content-Type: text/html;charset=utf-8");    //设置字符编码
$file = &#39;test.txt&#39;;
$filearr = file($file,FILE_IGNORE_NEW_LINES|FILE_SKIP_EMPTY_LINES);
var_dump($filearr);
?>

輸出結果為:

php怎麼逐行將整個文件資料存入陣列中

$flags參數若設定多個常數值,則需要使用|分隔。

好了就說到這裡了,有其他想知道的,可以點選這個喔。 → →

PHP檔案基礎操作

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

以上是php怎麼逐行將整個文件資料存入陣列中的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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