• ベストアンサー

phpでcsvをhtmlにしたい

phpでcsvデータ(行はその都度変わる。列は5行)をhtmlに罫線をかけて 表として表示させたいのですがどのように記述したらよいかわかりません。 Win2000/Anhttpd/php4.3.2

質問者が選んだベストアンサー

  • ベストアンサー
回答No.3

テキトーに書いたから、どこかおかしいかも。 <?php $fp = fopen ("test.csv","r"); $i = 1; print "<table border='1'>"; print "<tr>"; while ($data = fgetcsv ($fp, 1000, ",")){  $num = count ($data);  for ($c=0; $c < $num; $c++){   if($i > 5){    print "</tr><tr>";    $i = 1;   }   print "<td>$data[$c]</td>";   $i++;  } } print "</tr></table>"; fclose ($fp); ?>

GETSTREET
質問者

お礼

思い通りの事ができました。どうもありがとうございました。

その他の回答 (2)

回答No.2

fgetcsv という関数もあります。

参考URL:
http://search.net-newbie.com/php/function.fgetcsv.html
GETSTREET
質問者

補足

<?php $row = 1; $fp = fopen ("test.csv","r"); while ($data = fgetcsv ($fp, 1000, ",")){ $num = count ($data); $row++; for ($c=0; $c < $num; $c++){ print $data[$c] . "<br><br>"; } } fclose ($fp); ?> //上記で読み込みはできましたがデータを縦に読み込みます。」 これに何とか5列で改行。罫線をかけたいのですが

回答No.1

テーブルにcsvのデータを入れてやればよいわけですよね。 まず、一行ずつデータを読み込み、splitで カンマごとに区切ります。 区切ったものを<td></td>の間に入れてやれば (<Table>タグと<tr>タグを忘れずに) 良いかと。 例えば print qq(<table border="1">); for (csvファイルのデータがある限り){ split(カンマごとに区切る); print qq(<tr>); for(区切ったものの数(5つ)){ print qq(<td>データ</td>); } print qq(</tr>); } print qq(</table>);

参考URL:
 
GETSTREET
質問者

補足

<?php $row = 1; $fp = fopen ("test.csv","r"); while ($data = fgetcsv ($fp, 1000, ",")){ $num = count ($data); $row++; for ($c=0; $c < $num; $c++){ print $data[$c] . "<br><br>"; } } fclose ($fp); ?> //上記で読み込みはできましたがデータを縦に読み込みます。」 これに何とか5列で改行。罫線をかけたいのですが

関連するQ&A