LoginSignup
0
1

More than 1 year has passed since last update.

【PHP】fgetcsv()関数でCSVを読み取る方法

Last updated at Posted at 2022-05-27

PHP7技術者認定初級試験に向けて学習中の身です。
備忘録として残します。

1. csvファイルを作成

sample.csv
1,"りんご,バナナ",フルーツ
2,オレンジ,フルーツ

fgetcsvを使えば、こうしたCSVのデータを配列として読み込むことができます。
まずは1行だけ読み込む方法から。
読み込んだ値をvar_dump関数で出力します。

2. newfile.phpファイルを作成

newfile.php
<?php
$fp = fopen("sample.csv", "r");

$data = fgetcsv($fp);
var_dump($data);

fclose($fp);
?>

3. 実行結果(コンソール)

array(3) {
  [0]=>
  string(1) "1"
  [1]=>
  string(19) "りんご,バナナ"
  [2]=>
  string(12) "フルーツ"
}

1行目のデータがカンマ区切りで配列として出力されました。
でも1行目のデータだけ出力できても困ります。
そこで次に全てのCSVデータを読み取って出力する方法を書いていきます。
方法としては、while文でCSVのデータを1行ずつ繰り返し読み取ります。

4. newfile.phpファイルを修正

newfile.php
<?php
$fp = fopen("sample.csv", "r");

# テーブルタグを作成し、テーブルヘッダーで見出しを作る
echo '<table border="1">
      <tr>
      <th>ID</th>
      <th>フルーツ</th>
      </tr>';

# while文でCSVファイルのデータを1つずつ繰り返し読み込む
while($data = fgetcsv($fp)){
    // テーブルセルに配列の値を格納
    echo '<tr>';
    echo '<td>'.$data[0].'</td>';
    echo '<td>'.$data[1].'</td>';
    echo '</tr>';
}

# テーブルの閉じタグ
echo '</table>';

fclose($fp);
?>

ブラウザで表示してみます。

5. ブラウザで表示

スクリーンショット 2022-05-27 15.21.34.png

このように全てのCSVデータを配列として読み取り、テーブルで整えて表示させることができました。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1