您好,登錄后才能下訂單哦!
這篇文章主要講解了“php如何逐行把整個文件數據存入數組中”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“php如何逐行把整個文件數據存入數組中”吧!
上篇文章中的方法,會在一行輸出文件的全部內容,文件數據少還好,如果文件數據太多,例如:
使用file_get_contents()函數進行讀取輸出:
<?php header("Content-Type: text/html;charset=utf-8"); //設置字符編碼 $file = 'test.txt'; $filestr = file_get_contents($file); echo $filestr; ?>
輸出結果為
可以看出這樣輸出的內容不利于閱讀了。那么怎么做可以逐行輸出文件全部內容呢?可以借助數組。
可以先一次性讀取整個文件,并將數據逐行存入數組,每一行數據對應一個數組元素即可。
我們來看看下面的代碼:
<?php header("Content-Type: text/html;charset=utf-8"); //設置字符編碼 $file = 'test.txt'; $filestr = file($file,FILE_IGNORE_NEW_LINES); var_dump($filestr); ?>
輸出結果:
是不是便于閱讀了,且有時需要讀取全部內容,但暫時只需要其中的一行數據,就可以使用 數組名[下標]
的形式來取指定行的數據。例如想要第三行的數據,那么可以:
<?php header("Content-Type: text/html;charset=utf-8"); //設置字符編碼 $file = 'test.txt'; $filestr = file($file,FILE_IGNORE_NEW_LINES); echo $filestr[2]; //數組下標是從0開始的 ?>
輸出結果:
下面我們來了解一下里面的關鍵函數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”,輸出會是這樣的:
而如果一個文件中包含空行:
使用上例中的代碼讀取文件,輸出結果為:
就可以設置“FILE_SKIP_EMPTY_LINES”來跳過空行,讀取下一行數據。
<?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); ?>
輸出結果為:
$flags
參數如果設置多個常量值,需要使用|
分隔。
感謝各位的閱讀,以上就是“php如何逐行把整個文件數據存入數組中”的內容了,經過本文的學習后,相信大家對php如何逐行把整個文件數據存入數組中這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。