- 締切済み
PHPでcsvファイルを一覧表示するにはどうすれば良いのでしょうか?
<?php //ファイルを開く $fp = fopen('maillog.csv', 'r') or die('ファイルが開けません'); //テーブルを出力 echo '<table border="1">'; while ($field_array = fgetcsv($fp, 10000, ',', '"')) { echo '<tr>'; foreach ($field_array as $value) { echo '<td>'.htmlspecialchars($value, ENT_QUOTES).'</td>'; } echo '</tr>'; } echo '<table>'; //ファイルを閉じる fclose($fp); ?> プログラムだと、全ての項目が表示されてしまうので 少ない項目(3~4つ)で表示できるにはどうすれば良いのでしょうか? また、各項目毎のタイトルも付けたいのですが お願いします。
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- tenderfeel
- ベストアンサー率56% (215/379)
あ、申し訳ない…trが抜けてました。 theadはテーブルの見出しタグで、このタグを使うと たとえば印刷するときなんかにテーブルが途中で切れてもtheadの中に入っているセルが冒頭に入るようになります。 echo '<thead><tr><td>項目名</td><td>項目名</td>…【略】</tr></thead>'; >文字が縦から横へ表示するよい方法は、ないでしょうか? nowrapという属性を指定すると改行を禁止できます。 http://www.tohoho-web.com/html/td.htm <td nowrap>項目名</td>
- tenderfeel
- ベストアンサー率56% (215/379)
whileの前にtheadをつけとけばいいのでは? echo '<table border="1">'; echo '<thead><td>項目名</td><td>項目名</td>…【略】</thead>'; echo '<tbody>'; while ($field_array = fgetcsv($fp, 10000, ',', '"')) {
お礼
<thead>なんですね <tr>でやってみたんです 有難うございます。 文字が縦から横へ表示するよい方法は、ないでしょうか? いろいろ有難うございます。
- yambejp
- ベストアンサー率51% (3827/7415)
>項目の上にタイトルを付けるには いや、だから・・・ csvに該当するデータがあるなら別ですがないのですよね? であれば、想像しながら手で書くしかありません。 $header=Array("項目1","項目2","項目3",・・・); あとは、前回例示したフローと同等のものを走らせてやればよいでしょう
- yambejp
- ベストアンサー率51% (3827/7415)
たとえばこんな感じ。 foreach ($field_array as $key=>$value) { if(!in_array($key,Array(0,2,4))) continue; echo '<td>'.htmlspecialchars($value, ENT_QUOTES).'</td>'; } 0、2、4番目のデータだけ表示します。 >各項目毎のタイトル タイトルのリストを配列で用意しておけばよいでしょう。
お礼
早々、回答ありがとうございます。 arrayの使い方がわかりました嬉しいです 良かったら、項目の上にタイトルを付けるには どうしたら良いのですか?
お礼
お忙しい中 本当に有難うございます。 ちょっとやってみますね また、わからなくなったら教えてくださいね