- ベストアンサー
phpでcsvをhtmlにしたい
phpでcsvデータ(行はその都度変わる。列は5行)をhtmlに罫線をかけて 表として表示させたいのですがどのように記述したらよいかわかりません。 Win2000/Anhttpd/php4.3.2
- みんなの回答 (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); ?>
その他の回答 (2)
- GuruGuru22
- ベストアンサー率51% (177/346)
fgetcsv という関数もあります。
補足
<?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列で改行。罫線をかけたいのですが
- neue_reich
- ベストアンサー率21% (138/647)
テーブルに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>);
補足
<?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列で改行。罫線をかけたいのですが
お礼
思い通りの事ができました。どうもありがとうございました。