查詢

SplFileObject::fgetcsv()函式—用法及示例

「 從 SplFileObject 物件中讀取一行 CSV 資料,並將其解析為一個陣列 」


函式名稱:SplFileObject::fgetcsv()

適用版本:PHP 5 >= 5.1.0, PHP 7

函式描述:SplFileObject::fgetcsv() 函式從 SplFileObject 物件中讀取一行 CSV 資料,並將其解析為一個陣列。

用法:

public array SplFileObject::fgetcsv ([ string $delimiter = "," [, string $enclosure = "\"" [, string $escape = "\\" ]]] )

引數:

  • delimiter(可選):指定 CSV 資料中的欄位分隔符,預設為逗號(,)。
  • enclosure(可選):指定用於包裹欄位的字元,預設為雙引號(")。
  • escape(可選):指定用於轉義特殊字元的字元,預設為反斜槓(\)。

返回值:

  • 如果成功讀取一行 CSV 資料,則返回包含欄位值的陣列。如果已到達檔案末尾,則返回 false。

示例: 假設我們有一個名為data.csv的 CSV 檔案,內容如下:

id,name,age
1,John,25
2,Jane,30
3,Michael,35

我們可以使用 SplFileObject::fgetcsv() 函式來讀取該檔案的每一行資料:

$file = new SplFileObject('data.csv', 'r');

while (!$file->eof()) {
    $data = $file->fgetcsv();

    if ($data !== false) {
        print_r($data);
    }
}

$file = null; // 釋放資源

輸出結果:

Array
(
    [0] => id
    [1] => name
    [2] => age
)
Array
(
    [0] => 1
    [1] => John
    [2] => 25
)
Array
(
    [0] => 2
    [1] => Jane
    [2] => 30
)
Array
(
    [0] => 3
    [1] => Michael
    [2] => 35
)

以上示例程式碼開啟了一個名為data.csv的檔案,並使用 while 迴圈逐行讀取資料。每次呼叫 SplFileObject::fgetcsv() 函式都會返回一個包含欄位值的陣列,直到檔案末尾為止。

補充糾錯
上一個函式: SplFileObject::fgets()函式
下一個函式: SplFileObject::fgetc()函式
熱門PHP函式
分享連結