PHPのfgetcsv()関数を使用しCSVファイルを読みとってみます。
fgetcsv()関数は、開いているファイルからの行を解析し、CSVフィールドをチェックすることができます。CSVフィールドをチェックし、カンマ区切り値の行を読み取ることができます。
■基本的な構文
fgetcsv(file, length, separator, enclosure)
fileは、開いているファイルから行を取り出して解析します。
lengthは、1行の最大長を指定します。CSVファイルの最長行数(文字数)よりも大きくなければなりません。オプションです。
separatorは、フィールドセパレータ(フィールドの間を区切る文字)を指定します。デフォルトではカンマ(,)となります。オプションです。
enclosureは、フィールドの囲み文字を指定します。デフォルトでは(”)となります。オプションです。
■環境
・Windows10
・WampServer Version 3.2.3 64bit
・PHP Version 7.3.21
■fgetcsv()関数を使用しCSVファイルを読み取る
では、早速fgetcsv()関数を使用しCSVファイルを読み取ってみます。
■コード
<html lang="ja">
<head>
<title>fgetcsv()関数を使用しCSVファイルを読み取る</title>
</head>
<body>
<?php
if (($file = fopen("C:/wamp64/www/project/test.csv","r")) !== FALSE)
{
while (($data = fgetcsv($file)) !== FALSE)
{
echo $data[0].'<br>';
echo $data[1].'<br>';
echo $data[2].'<br>';
}
fclose($file);
}
?>
</body>
</html>
if文を使用し、括弧内でfileという変数を宣言。さらにfopen()関数を使用し、”r(読み込み)”モードで、CSVファイルを開きます。比較演算子「!==」で等しくない場合は偽(FALSE)となる。
次にwhile文を使用し、繰り返し処理を行う。括弧内でdataという変数を宣言。宣言後、fgetcsv()関数を使用し、ファイルのカンマ区切り値の行を読み取り、data内に格納していきます。比較演算子「!==」で等しくない場合は偽(FALSE)となる。
格納されたCSVファイルのデータをecho文を使用し、出力します。
最後に、fclose()関数でCSVファイルを閉じる。
なお、CSVファイルを読み込みしますが、ファイルの中身は上記のものとなっています。
実行
では、このスクリプトを「read_csvfile.php」という名前で保存し、実行させてみます。
実行させてみると、fgetcsv()関数を使用したことで、CSVファイルの中身が読み取られ、出力されました。
コメント