PHP で CSV ファイルを解析する方法
Ralfh Bryan Perez
2023年1月3日
CSV
はファイルの一種です。Comma Separated Values
という意味です。Excel などのさまざまなソフトウェアでよく使用されます。これにより、データを表形式で保存し、.csv
拡張子を付けることができます。
PHP で CSV
ファイルを解析するには、PHP に組み込まれている fopen()
、fgetcsv()
、および fclose()
関数の組み合わせを使用して実行できます。
例:
/*
//sampleFile.csv
dog, cat, rat, fish
horse, cow, carabao
bird, rabbit, chicken
*/
$ctr = 1;
if (($file = fopen("sampleFile.csv", "r")) !== FALSE) {
while (($record = fgetcsv($handle, 1000, ",")) !== FALSE) {
$total = count($record);
echo "<p> $total fields in line $row: <br /></p>\n";
$ctr++;
for ($x = 0; $x < $ctr; $x++) {
echo $record[$x] . "<br />\n";
}
}
fclose($file);
}
//output:
/*
4 fields in line 1:
dog
cat
3 fields in line 2:
horse
cow
carabao
3 fields in line 3:
bird
rabbit
chicken
*/
上記の例では、次の関数を使用して sampleFile.csv
のコンテンツを解析します。
fopen(Filename, Mode, Include_path, context)
この関数は、URL またはファイルを受け入れ、ファイル名で指定された名前付きリソースをストリームにバインドします。
パラメーター:
Filename
(必須) - このパラメーターは、開くファイルまたは URL を指定しますMode
(必須) - これは、ファイルに必要なアクセスのタイプを表します。Include_path
(オプション) - このパラメーターを1
に設定すると、include_path
でファイルが検索されます。context
(オプション) - ファイルハンドルの内容を指定します。これは、ストリームの動作で更新できるオプションのセットです。
fgetcsv()
この関数は、開かれた CSV ファイルから行を解析します。
パラメーター:
File
(必須)-このパラメーターは、1 行を返し、解析するために開いているファイルを指定します。Length
(PHP 5 以下ではオプションですが、PHP 5.1 以降では必須)-このパラメーターは行の最大長です。これは、ファイルの最も長い行よりも大きくなければなりません。このパラメーターが存在しない場合、長さに制限がないため、解析が遅くなります。Separator
(オプション)-このパラメーターはフィールドセパレーターであり、デフォルト値はコンマ-,
です。Enclosure
(オプション)-このパラメーターはフィールドエンクロージャーで、デフォルト値は"
です。Escape
(オプション)-このパラメータはエスケープ文字で、デフォルトは\\
です。
fclose()
この関数は、開いているファイルポインターを閉じます。
パラメータ:
File
(必須)-これは、閉じるファイルを指定します。
注
ファイルポインターは有効である必要があり、
fopen()
によって正常に開かれたファイルを指している必要があります。