溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

php如何逐行把整個文件數(shù)據(jù)存入數(shù)組中

發(fā)布時間:2021-08-06 17:11:56 來源:億速云 閱讀:147 作者:chen 欄目:編程語言

這篇文章主要講解了“php如何逐行把整個文件數(shù)據(jù)存入數(shù)組中”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“php如何逐行把整個文件數(shù)據(jù)存入數(shù)組中”吧!

上篇文章中的方法,會在一行輸出文件的全部內容,文件數(shù)據(jù)少還好,如果文件數(shù)據(jù)太多,例如:

php如何逐行把整個文件數(shù)據(jù)存入數(shù)組中

使用file_get_contents()函數(shù)進行讀取輸出:

<?php
header("Content-Type: text/html;charset=utf-8");    //設置字符編碼
$file = 'test.txt';
$filestr = file_get_contents($file);
echo $filestr;
?>

輸出結果為

php如何逐行把整個文件數(shù)據(jù)存入數(shù)組中

可以看出這樣輸出的內容不利于閱讀了。那么怎么做可以逐行輸出文件全部內容呢?可以借助數(shù)組。

可以先一次性讀取整個文件,并將數(shù)據(jù)逐行存入數(shù)組,每一行數(shù)據(jù)對應一個數(shù)組元素即可。

我們來看看下面的代碼:

<?php
header("Content-Type: text/html;charset=utf-8");    //設置字符編碼
$file = 'test.txt';
$filestr = file($file,FILE_IGNORE_NEW_LINES);
var_dump($filestr);
?>

輸出結果:

php如何逐行把整個文件數(shù)據(jù)存入數(shù)組中

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

<?php
header("Content-Type: text/html;charset=utf-8");    //設置字符編碼
$file = 'test.txt';
$filestr = file($file,FILE_IGNORE_NEW_LINES);
echo $filestr[2];  //數(shù)組下標是從0開始的
?>

輸出結果:

php如何逐行把整個文件數(shù)據(jù)存入數(shù)組中

下面我們來了解一下里面的關鍵函數(shù)file()。

file($filename,$flags,$context)函數(shù)接受一個必需參數(shù)$filename(要讀取的文件),兩個可省略的參數(shù)$flags$context(文件句柄的環(huán)境)。

但一般還是會設置$flags參數(shù)的,該參數(shù)可以是以下一個或多個常量:

  • FILE_USE_INCLUDE_PATH:在 include_path (在 php.ini 中)中查找文件,默認為 FALSE;如果想,則設置參數(shù)值為 '1'。

  • FILE_IGNORE_NEW_LINES:在數(shù)組每個元素的末尾不要添加換行符;

  • FILE_SKIP_EMPTY_LINES:跳過空行。

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

php如何逐行把整個文件數(shù)據(jù)存入數(shù)組中

而如果一個文件中包含空行:

php如何逐行把整個文件數(shù)據(jù)存入數(shù)組中

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

php如何逐行把整個文件數(shù)據(jù)存入數(shù)組中

就可以設置“FILE_SKIP_EMPTY_LINES”來跳過空行,讀取下一行數(shù)據(jù)。

<?php
header("Content-Type: text/html;charset=utf-8");    //設置字符編碼
$file = 'test.txt';
$filestr = file($file,FILE_IGNORE_NEW_LINES|FILE_SKIP_EMPTY_LINES);
var_dump($filestr);
?>

輸出結果為:

php如何逐行把整個文件數(shù)據(jù)存入數(shù)組中

$flags參數(shù)如果設置多個常量值,需要使用|分隔。

感謝各位的閱讀,以上就是“php如何逐行把整個文件數(shù)據(jù)存入數(shù)組中”的內容了,經過本文的學習后,相信大家對php如何逐行把整個文件數(shù)據(jù)存入數(shù)組中這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經查實,將立刻刪除涉嫌侵權內容。

php
AI