在之前的文章《php怎么知道指定目錄中有哪些文件》中,我們使用PHP獲取指定目錄中文件(不包含子目錄)名稱的方法。這次我們來聊聊計算一個文件中有多少行數據的方法,有需要的可以參考參考。
我們有一個名為“test.txt”的文本文件,里面的內容為:
我們可以看出該文件有10行數據,那么如何使用PHP程序來進行統計,計算出文件中有幾行數據呢?
今天我們就來給大家介紹兩種方法,首先是第一種方法:
<?php header("Content-Type: text/html;charset=utf-8"); //設置字符編碼 $i=0; $handle = fopen('./test.txt', 'r'); //打開文件 if (!$handle) { //判斷文件是否打開成功 echo '文件打開失敗!'; } while (false !== ($char = fgets($handle,1024))) { //循環讀取文件內容 $i++; } echo "文件中共有 ".$i." 行數據"; fclose($handle); //關閉文件 ?>
輸出結果:
分析:
-
fgets()函數可以逐行讀取文件,一次能讀取一行數據。
-
我們利用while循環和fgets()函數來讀取文件的全部數據,然后使用一個計數器
$i
來統計讀取整個文件,fgets()函數一共操作了幾次即可。
利用while循環和fgets()函數的方法有點復雜,還需要打開和關閉文件。下面我們介紹一種更簡單的方法:
<?php header("Content-Type: text/html;charset=utf-8"); //設置字符編碼 $file = 'test.txt'; $filearr = file($file,FILE_IGNORE_NEW_LINES); $i = count($filearr); echo "文件中共有 ".$i." 行數據"; ?>
輸出結果:
分析:
file()函數可以一次性讀取整個文件,且會把整個文件讀入一個數組中,一行數據對應一個數組元素【詳情可閱讀文章:《php怎么逐行將整個文件數據存入數組中》】。
我們使用var_dump()輸出上例的$filearr數組,可得到:
可以看出有10個數組元素,這10個數組元素就對應文件有10行數據。
此時使用count($filearr)
來統計數組的長度(數組元素的個數),就可以獲取文件有幾行數據。
好了就說到這里了,有其他想知道的,可以點擊這個哦。→ →PHP文件基礎操作
推薦:《PHP面試題大匯總(收藏)》《php視頻教程》