首頁  >  文章  >  後端開發  >  在 PHP 中讀取文字文件

在 PHP 中讀取文字文件

WBOY
WBOY轉載
2024-02-29 22:10:08991瀏覽

php小編西瓜在PHP開發中,讀取文字檔是一項常見的操作。透過PHP的檔案讀取函數,可以輕鬆地開啟、讀取和處理文字檔案中的內容。無論是讀取設定檔、日誌檔案或其他類型的文字文件,PHP提供了豐富的函數和方法來實現此操作。本文將介紹如何在PHP中讀取文字檔案的方法,以及一些常用的技巧和注意事項。


php 中使用fgets() 函數逐行讀取文字檔案

我們可以使用帶有while 迴圈的fgets() 函數在PHP 中逐行讀取文字檔。如果有一行,函數會傳回一行,如果沒有更多的行要讀取,則傳回 false。它需要兩個參數。語法如下。

fgets($file, $length)

在這裡,$file 類似於指向成功開啟檔案的檔案指標。 $length 選項,可選,表示要讀取的位元組數。

我們可以使用 open() 函數讀取文件,然後使用 while 迴圈透過 fgets() 函數循環遍歷每一行。我們有一個包含以下內容的文字檔案 abc.txt

Hi
How are you
Have a great day 

例如,建立一個變數 $txt_file 並在其中寫入 fopen() 函數。在 r 模式下開啟檔案 abc.txt。建立一個行計數器變數 $a 並將值 1 指派給它。然後,建立一個 while 迴圈。在迴圈的括號內,寫一個以 $text_file 為參數的 fgets() 函數。將函數指派給循環中的 $line 變數。列印 $line 變量,將它與循環體內的 $a 變數連接起來。增加 $a 變數並在循環外使用 fclose() 函數關閉檔案流。

範例程式碼:

<?php
$txt_file = fopen('abc.txt','r');
$a = 1;
while ($line = fgets($txt_file)) {
 echo($a." ".$line)."<br>";
 $a++;
}
fclose($txt_file);
?>

輸出:

1 Hi 
2 How are you 
3 Have a great day

#在PHP 中使用file() 函數逐行讀取文字檔

file() 函數將整個檔案讀入一個陣列file() 函數的語法如下。

file($filename, $flag, $context)

這裡,$filename 是要讀取的檔案路徑。 $flag 選項是可選的,它由各種常數組成,例如 FILE_USE_INCLUDE_PATHFILE_IGNORE_NEW_LINESFILE_SKIP_EMPTY_LINES。第三個也是可選的,它定義了一個上下文資源。

file() 函數傳回整個數組,如果它存在或傳回 false。我們可以使用該函數透過 foreach() 函數的 helo 逐行讀取檔案上下文。 foreach() 函數將遍歷整個內容並單獨提取每一行。

例如,將檔案路徑儲存在變數 $txt_file 中。寫一個變數 $lines 並使用 $txt_file 作為參數將 file() 函數儲存在其上。接下來,使用 foreach() 函數迴圈遍歷檔案的內容。使用 $lines 作為迭代器,使用 $num=>$line 作為值。在循環體內,列印 $num$line 變數。

範例程式碼:

$txt_file = 'abc.txt';

$lines = file($txt_file);
foreach ($lines as $num=>$line)
{
 echo 'Line '.$num.': '.$line.'<br/>';
}

輸出:

Line 0: Hi 
Line 1: How are you 
Line 2: Have a great day

#在PHP 中使用file_get_contents()explode() 函數逐行讀取檔案

file_get_contents() 函數將整個檔案讀入一個字串。如果內容存在,則將整個檔案作為字串傳回,否則傳回 false。我們可以指定檔案路徑作為函數的參數。 explode() 函數使用分隔符號將字串拆分為陣列。 explode() 函數的語法如下。

explode(separator, $string, $limit)

separator 選項用於在傳回值時將 $string$limit 元素的數量分開。我們可以結合 file_get_contents()explode()foreach() 函數在 PHP 中逐行讀取文字檔。

例如,建立一個變數 $contents 並在上面使用參數中的檔案路徑來編寫 file_get_contents() 函數。使用 explode() 函數,其中 \n 字元作為分隔符,$contents 作為字串。將函數指派給變數 $lines。使用 foreach 迴圈將 $lines 迴圈為 $line。然後,在循環體內列印 $line

在下面的範例中,$contents 變數傳回字串。我們用\n 換行符號將其拆分為一個數組,並使用循環列印每一行。

範例程式碼:

$contents=file_get_contents("abc.txt");
$lines=explode("\n",$contents);
foreach($lines as $line){
 echo $line.'<br>';

}

輸出:

Hi 
How are you 
Have a great day

以上是在 PHP 中讀取文字文件的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:lsjlt.com。如有侵權,請聯絡admin@php.cn刪除