PHPのfgetcsv()関数を使用しCSVファイルを読み取る

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);
}
?>
</html>

if文を使用し、括弧内でfileという変数を宣言。さらにfopen()関数を使用し、”r(読み込み)”モードで、CSVファイルを開きます。比較演算子「!==」で等しくない場合は偽(FALSE)となる。

次にwhile文を使用し、繰り返し処理を行う。括弧内でdataという変数を宣言。宣言後、fgetcsv()関数を使用し、ファイルのカンマ区切り値の行を読み取り、data内に格納していきます。比較演算子「!==」で等しくない場合は偽(FALSE)となる。

格納されたCSVファイルのデータをecho文を使用し、出力します。

最後に、fclose()関数でCSVファイルを閉じる。

なお、CSVファイルを読み込みしますが、ファイルの中身は上記のものとなっています。

実行

では、このスクリプトを「read_csvfile.php」という名前で保存し、実行させてみます。

実行させてみると、fgetcsv()関数を使用したことで、CSVファイルの中身が読み取られ、出力されました。

コメント

タイトルとURLをコピーしました