PHP @file()是一個非常實(shí)用的函數(shù),它能夠從一個文件中讀取數(shù)據(jù)并將其存儲到一個數(shù)組中。這個函數(shù)在處理大量數(shù)據(jù)的時候非常有用,能夠逐行讀取文件內(nèi)容,處理后返回數(shù)組,因此在許多情況下都是非常必要的。下面我們就來詳細(xì)介紹一下PHP @file()函數(shù)。
首先我們來看一個使用實(shí)例:
$filename = 'test.txt'; $file = file($filename); foreach($file as $line) { echo $line; }
這個例子中,我們首先通過變量$filename指定需要讀取的文件,然后使用file()函數(shù)讀取文件內(nèi)容并存儲到一個數(shù)組中。最后通過循環(huán)輸出每一行的內(nèi)容。
PHP @file()函數(shù)支持兩個參數(shù),第一個參數(shù)是需要讀取的文件名,第二個參數(shù)是讀取模式。如果不指定讀取模式,默認(rèn)為將文件的所有內(nèi)容一次性讀取并存儲到一個數(shù)組中。如果指定讀取模式為FILE_IGNORE_NEW_LINES,那么這個函數(shù)會忽略所有的換行符,讀取到的每一行都會被存儲為一個獨(dú)立的數(shù)組元素。
下面我們再來看一下一個實(shí)際的例子:
$filename = 'test.txt'; $file = file($filename, FILE_IGNORE_NEW_LINES); foreach($file as $line) { echo($line.";"); }
和之前的例子一樣,這個例子也是讀取test.txt文件并輸出每一行的內(nèi)容。但是我們指定了讀取模式為FILE_IGNORE_NEW_LINES,這樣讀取到的每一行中的換行符都會被忽略,輸出時我們會在每一行后面加上一個分號。
PHP @file()函數(shù)還可以和其他函數(shù)組合使用,例如在讀取CSV文件時,我們可以將讀取到的每一行使用explode()函數(shù)進(jìn)行拆分。下面是一個使用實(shí)例:
$filename = 'test.csv'; $file = file($filename, FILE_IGNORE_NEW_LINES); foreach($file as $line) { $tmp = explode(',', $line); echo($tmp[0]."|".$tmp[1]."
"); }
和之前的例子不同之處在于讀取的文件是CSV文件,我們通過使用explode()函數(shù)將每一行的內(nèi)容以逗號為分隔符進(jìn)行拆分,然后輸出每一行的第一列和第二列。
總結(jié)一下,PHP @file()函數(shù)非常實(shí)用,在讀取文件內(nèi)容并進(jìn)行處理的時候經(jīng)常會用到。我們可以根據(jù)自己的需求指定不同的讀取模式,然后將讀取到的內(nèi)容進(jìn)行處理輸出。使用這個函數(shù)可以大大簡化文件讀取和處理的工作。