あけましておめでとうございます。
本年もよろしくお願いします。
年始早々ですが、理解が深まらないことがありますので質問させてください。
PHPにてCSVファイルを読み込みと出力ができたのですが、
腑に落ちないところがあります。
下記がコードになります。
PHP
1<h1>CSV読み込み・出力</h1> 2 3<?php 4 5$file='./test.csv'; 6$fp = fopen($file, 'r'); 7// $line = fgetcsv($fp); 8// var_dump($line); 9//CSVファイルを読み込みモードでオープン 10if ($fp == TRUE){ 11 $row = 0; 12 13 //CSVファイルを1行ずつ読み込む 14 while (($line = fgetcsv($fp)) == TRUE) { 15 16 //タイトル行の取得 17 if ($row == 0){ 18 echo 'タイトル:'.$line[0].$line[1].$line[2].$line[3].'<br>'; 19 $row++; 20 continue; 21 } 22 echo $line[0].'<br>'; 23 echo $line[1].'<br>'; 24 echo $line[2].'<br>'; 25 echo $line[3].'<br>'; 26 27 $row++; 28 } 29}else{ 30 echo $file.'の読み込みに失敗しました。'; 31} 32//ファイルをクローズ 33fclose($fp); 34?>
CSV
1name,old,blood,from 2太郎,21,O,東京 3ジョン,23,A,大阪 4ニキータ,32,AB,愛知 5次郎,22,B,hukuoka
①繰り返し処理を行う前にvar_dump=$lineで中身をみると1行目の「name,old,blood,from」のみが出力されるのですが、2行目以降が取得できているのを確認するには繰り返し処理を行わないと確認できないのでしょうか??
②①に関連するのですがwhile (($line = fgetcsv($fp)) == TRUE)
ではなくて、while ($line == TRUE)
と記載すると無限ループになってしまいます。この2つの書き方は同じだと思っているのですが何が異なっているのでしょうか??
よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー