dポイントプレゼントキャンペーン実施中!

<?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つ)で表示できるにはどうすれば良いのでしょうか?
また、各項目毎のタイトルも付けたいのですが
お願いします。

「PHPでcsvファイルを一覧表示するには」の質問画像

A 回答 (4件)

あ、申し訳ない…trが抜けてました。


theadはテーブルの見出しタグで、このタグを使うと
たとえば印刷するときなんかにテーブルが途中で切れてもtheadの中に入っているセルが冒頭に入るようになります。
echo '<thead><tr><td>項目名</td><td>項目名</td>…【略】</tr></thead>';

>文字が縦から横へ表示するよい方法は、ないでしょうか?
nowrapという属性を指定すると改行を禁止できます。
http://www.tohoho-web.com/html/td.htm
<td nowrap>項目名</td>

参考URL:http://www.htmq.com/html/thead.shtml
    • good
    • 0
この回答へのお礼

お忙しい中
本当に有難うございます。

ちょっとやってみますね
また、わからなくなったら教えてくださいね

お礼日時:2009/04/21 15:34

whileの前にtheadをつけとけばいいのでは?



echo '<table border="1">';
echo '<thead><td>項目名</td><td>項目名</td>…【略】</thead>';
echo '<tbody>';
while ($field_array = fgetcsv($fp, 10000, ',', '"')) {
    • good
    • 0
この回答へのお礼

<thead>なんですね
<tr>でやってみたんです
有難うございます。

文字が縦から横へ表示するよい方法は、ないでしょうか?

いろいろ有難うございます。

お礼日時:2009/04/21 14:30

>項目の上にタイトルを付けるには



いや、だから・・・
csvに該当するデータがあるなら別ですがないのですよね?
であれば、想像しながら手で書くしかありません。
$header=Array("項目1","項目2","項目3",・・・);

あとは、前回例示したフローと同等のものを走らせてやればよいでしょう
    • good
    • 0

たとえばこんな感じ。



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番目のデータだけ表示します。

>各項目毎のタイトル

タイトルのリストを配列で用意しておけばよいでしょう。
    • good
    • 0
この回答へのお礼

早々、回答ありがとうございます。
arrayの使い方がわかりました嬉しいです
良かったら、項目の上にタイトルを付けるには
どうしたら良いのですか?

お礼日時:2009/04/21 13:45

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!