用 PHP 讀取或解析 CSV 檔案

Muhammad Abubakar 2023年1月30日 2021年7月8日
  1. 在 PHP 中使用 fread() 讀取 CSV 檔案
  2. 在 PHP 中使用 readfile() 讀取 CSV 檔案
  3. 在 Python 中使用 str_getcsv() 函式解析 CSV
  4. 在 Python 中使用 fgetcsv() 函式解析 CSV
用 PHP 讀取或解析 CSV 檔案

檔案處理是任何 Web 應用程式的重要組成部分。本教程將介紹如何使用檔案處理來讀取、寫入和附加檔案。

在 PHP 中使用 fread() 讀取 CSV 檔案

是 PHP 讀取 CSV 檔案的基本功能。它讀取檔案並返回檔案中存在的所有內容。

請參閱示例程式碼。

<?php
$file = "text1.csv";
$openfile = fopen($file, "r");
$cont = fread($openfile, filesize($file));
echo $cont;
?>  

輸出:

aaa,bbb,ccc,dddd
123,456,789
"""aaa""","""bbb"""

fread() 需要兩個引數:我們要從中讀取資料的檔案和我們可以通過將檔案作為引數傳遞給函式 filesize($file) 來獲取的檔案大小。

在 PHP 中使用 readfile() 讀取 CSV 檔案

此函式讀取檔案並將結果儲存到記憶體或快取中。它開啟檔案並讀取檔案的內容。它只接受一個引數,即檔案。

<?php
echo readfile("text1.csv");
?>

輸出:

aaa,bbb,ccc,dddd
123,456,789
"""aaa""","""bbb"""
49

fread() 函式僅讀取檔案並在編輯器中返回資料,但 readfile() 函式讀取檔案並將其結果儲存到記憶體或快取中。

在 Python 中使用 str_getcsv() 函式解析 CSV

此函式解析 CSV 格式的字串並返回包含檔案資料的陣列。它將資料從 CSV 檔案轉換為陣列,但在執行它之前,你應該使用 fopen() 函式開啟檔案,該函式將檔案和模式作為引數。請參考以下示例。

<?php
$handle = fopen("text1.csv", "r");
$lineNumber = 1;
while (($raw_string = fgets($handle)) !== false) {
    $row = str_getcsv($raw_string);
    var_dump($row);
    $lineNumber++;
}
fclose($handle);
?>

輸出:

array(4) {
  [0]=>
  string(3) "aaa"
  [1]=>
  string(3) "bbb"
  [2]=>
  string(3) "ccc"
  [3]=>
  string(4) "dddd"
}
array(3) {
  [0]=>
  string(3) "123"
  [1]=>
  string(3) "456"
  [2]=>
  string(3) "789"
}
array(2) {
  [0]=>
  string(5) ""aaa""
  [1]=>
  string(5) ""bbb""
}

在 Python 中使用 fgetcsv() 函式解析 CSV

現在,我們將使用一個名為 fgetcsv() 的酷函式來解析 CSV 檔案中的資料。使用此功能需要執行以下步驟。

  1. 開啟檔案從檔案中訪問檔案資料
  2. 在迴圈中使用 fgetcsv() 函式來分別解析檔案的每一行。
  3. 關閉檔案

請參閱示例程式碼。

<?php

$file = fopen('text1.csv', 'r');
while (($line = fgetcsv($file)) !== FALSE) {
    echo '<pre>';
    print_r($line);
    echo '</pre>';
}
fclose($file);
?>

輸出:

<pre>Array
(
    [0] => aaa
    [1] => bbb
    [2] => ccc
    [3] => dddd
)
</pre><pre>Array
(
    [0] => 123
    [1] => 456
    [2] => 789
)
</pre><pre>Array
(
    [0] => "aaa"
    [1] => "bbb"
)
</pre>

相關文章 - PHP File