テーブル作成の方法についての質問

このQ&Aのポイント
  • テーブルの作り方で質問です。イメージフォルダ内からファイル名を取得し、テーブル内に画像を挿入する方法について教えてください。
  • 質問者はテーブル内の画像を横並びに表示したいが、具体的な方法が分からないようです。どのようなアプローチを取れば良いでしょうか。
  • テーブル作成の処理自体はできているが、テーブルの見栄えを改善する方法についての質問です。横並びに複数の画像を表示する方法を教えてください。
回答を見る
  • ベストアンサー

テーブルの作り方で質問です

こんにちは 下記のような流れの処理について教えて欲しいことがあります 1.イメージフォルダ内からファイル名を取得 2.テーブルを作成 3.テーブル内に<img src=img/$ファイル名> で画像を入れる <table width="750"> <? $dir=@opendir("img"); while($file = readdir($dir)){ print "<tr>"; print "<td><img src='img/$file' alt='$file'></td>"; print "</tr>"; } closedir($dir); ?> </table> 上記コードで1~3の単純な処理自体は出来ているのですが、テーブルの 見栄えとしては横並びに3~4個程度の<td>を入れたいのですが どうしたらいいのかわかりません。 どういう風に考えて作ればいいか教えて頂けますでしょうか 宜しくお願いします

  • PHP
  • 回答数1
  • ありがとう数1

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

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

たとえばこんなかんじ・・・ <? $count=0; $table=""; $col=3; $dir=@opendir("img"); while($file = readdir($dir)){ if(preg_match("/(\.gif|\.jpg|\.png)/i",$file)){ if($count>=$col) $count=0; if($count==0) $table.= "<tr>\n"; $table.="<td><img src='img/{$file}' alt='{$file}'></td>\n"; if($count==$col -1) $table.= "</tr>\n"; $count++; } } while($count<=$col-1){ $table.= "<td>&nbsp</td>\n"; if($count==$col -1) $table.= "</tr>\n"; $count++; } $table="<table border>\n".$table."</table>\n"; closedir($dir); print nl2br(htmlspecialchars($table)); print $table; ?> 呼び出されるのは名前順とは限りません。もし名前でソートするなら 一度配列で受けて、ソートしてからテーブルをつくってください

koke29
質問者

お礼

出来ました! コードまで書いて頂いて、ありがとうございます!! 条件のつけ方は後でゆっくり解読して、考え方も身につくようにしますね。 急ぎで何とかしたかったので、本当に助かりました。 またわからないことがあった時は宜しくお願いします♪

関連するQ&A

  • readdirでのファイル名取得

    readdir()にて、textファイルのみ取り出すにはどのようにすれば良いのでしょうか? 現状は、後処理で、/txt|TXT/でマッチさせています。 opendir(DIR,"./DATA/"); @file=readdir(DIR); closedir(DIR); foreach $myfilename(@file){ if($myfilename=~/txt|TXT/){ print "$myfilename\n"; #確認用 } } よろしくお願いいたします。

    • ベストアンサー
    • Perl
  • フォルダの画像一覧

    下記の画像一覧のcgiを下位フォルダをリンク表示して下位フォルダにも進んでいけるようにしたいのですが、どのようにしたらよいでしょうか。下記も教えていただいたものを利用している素人です。よろしくお願いいたします。 $width_height = 'WIDTH=40 HEIGHT=55'; $dir = './'; #################### print "Content-type: text/html;CHARSET=x-sjis\n\n"; print "$dir の jpg一覧<P>\n"; print "<TABLE BORDER>\n"; print "<TR><TH>イメージ<TH>ファイル名<TH>サイズ(k)\n"; opendir(DIR, "$dir"); while ($_ = readdir(DIR)) { if (substr($_,-4,4) eq "\.jpg") { # jpgだけ出力 ($size) = (stat("$dir/$_"))[7]; # ファイルサイズ所得 print "<TR>"; print "<TD><A HREF=\"$dir/$_\" TARGET=\"jpg\"><IMG SRC=\"$dir/$_\" $width_height></A>"; # 画像(リンクあり) print "<TD><A HREF=\"$dir/$_\" TARGET=\"jpg\">$_</A>"; # ファイル名(リンクあり) print "<TD ALIGN=RIGHT>$size\n"; # サイズ } } closedir(DIR); print "</TABLE>\n"; exit:

    • ベストアンサー
    • Perl
  • フォルダの中身を知りたい

    opendir dir , $FORM{'user'}; @dir_file = readdir(dir); だったところを $open_folder = "../../img/cgi-bin/uploader/" . $FORM{'user'}; opendir dir , $open_folder; @dir_file = readdir(dir); というようにしました。 こうするとフォルダの中身が表示されません。 $img = $open_folder . "/ファイル名.gif"; print "<IMG SRC='$img'><BR>\n"; としたところ、きちんと絵が表示されました。 ※ファイル名は存在するファイルの名前をコピーして貼り付けました。 どうすればフォルダの中身を表示できるようになるのでしょうか?

    • ベストアンサー
    • Perl
  • ディレクトリ内の最新の画像のみ表示したい。

    ディレクトリファイルから画像ファイルの更新日時を取得して、 拡張子を問わず、最新の画像のみ表示させたいのですが、 うまく出来ません。ご教授お願いします。 ~・~・~・~・~・~・~ <?php $dir = @opendir("****"); while($file = readdir($dir)) { $kaku = substr($file, -3, 3); if($kaku=="jpg" || $kaku=="gif" || $kaku=="png"){ $cnt++; $last = date("ymdHis", filemtime($file)); $img="$last$file"; $filename[$cnt]=$file; } } closedir($dir); } arsort($img); $img_file= substr($img, 12); $cnt=0; foreach($img_file as $value){ $cnt++; if ($cnt<=1){ echo "<img src=\"$value\">"; } } ?>

    • ベストアンサー
    • PHP
  • tableを自動作成・追加できるプログラムを探しているのです・・

    <table> <tbody> <tr> <td colspan="9" align="center" </TD></td> </tr> <tr> <td colspan="9" <A href="http:// target=" _blank"></td> </tr> <tr> <td></td> <td></td> <td></td> <td></td> <td></td> <td></td> <td></td> <td></td> <td></td> </tr> <tr> <td rowspan="3"></td> <td></td> <td><img src=".jpg"></td> <td></td> <td> <table> <tbody> <tr> <td></td> <td></td> <td></td> </tr> </tbody> </table> </td> <td></td> <td><img src=".jpg"></td> <td><img src=".jpg"></td> <td></td> </tr> <tr> <td></td> <td><img src=".jpg"></td> <td></td> <td> <table> <tbody> <tr> <td></td> <td></td> <td></td> </tr> </tbody> </table> </td> <td></td> <td><img src=".jpg"></td> <td><img src=".jpg"></td> <td></td> </tr> <tr> <td></td> <td><img src=".jpg"></td> <td></td> <td> <table> <tbody> <tr> <td></td> <td></td> <td></td> </tr> </tbody> </table> </td> <td></td> <td><img src=".jpg"></td> <td><img src=".jpg"></td> <td></td> </tr> <tr> <td><img src=".jpg"></td> </tr> </tbody> </table> こんなtableを作成し(tdには数値・文字列・画像が入ります)一つのhtmlファイルに一ヶ月に10個ほど手動でtableを追加しています。 これを入力フォームより数値や文字列・参照画像を入力し、月ごとのhtmlにしてるので、指定したhtmlに反映させるようなプログラム(cgi? javascript? PHP?)をご存じの方いらっしゃいませんでしょうか?

  • cssで商品を並べる時、テーブルを使わないでできる?

    cssとっかかったばかりの初心者ですのでわけのわからない質問ばかりしてしまいますが、よろしくお願いします。 cssを使ったページに商品を並べる場合、テーブルを使ってレイアウトするのが楽と思いますが、テーブルを使わないで2列、3列というようにできますか? 普通にテーブルを使ったら <table> <tr> <td>item1</td> <td>item2</td> <td>item3</td> </tr> <tr> <td><img src="img/01.jpg" width="100" height="100"></td> <td><img src="img/02.jpg" width="100" height="100"></td> <td><img src="img/03.jpg" width="100" height="100"></td> </tr> </table> ですが、テーブルタグをつかわず、cssで列を指定ってできますか? それとも、商品ラインナップの場合はテーブルで入れるのが普通ですか??? いろいろやってみたんですが、わからなくなったので、質問します。 よろしくお願いします。

    • ベストアンサー
    • XML
  • <td> 内のテーブルを上寄せにするには?

    すみません教えていただけますか? 初心者です。 このまま表示するとTABLE A の直ぐ下のテーブルが中央に来てしまいます。 上寄せにしたいのですが、どのようにすればよいでしょうか? よろしくお願いします。 <table width="960" border="1"> <tr> <td width="160"> <!-- TABLE A --> <table width="160" border="1"> <tr> <td> <a href="" ><img src="subMenu.gif" /></a> </td> </tr> <tr> <td> <a href="" ><img src="subMenu.gif" /></a> </td> </tr> <tr> <td> <a href="" ><img src="subMenu.gif" /></a> </td> </tr> <tr> <td> <a href="" ><img src="subMenu.gif" /></a> </td> </tr> <tr> <td> <a href="" ><img src="subMenu.gif" /></a> </td> </tr> </table> </td> <td width="800" height="1200" border="1"> &nbsp; </td> </tr> </table>

    • ベストアンサー
    • HTML
  • CGIがある場所以外のディレクトリの内容表示方法

    ディレクトリ内にあるファイルの一覧を表示しようとしていますがうまく出来ません。 ---------------- opendir(DIR, "./"); @dir_value = readdir(DIR); closedir(DIR); ---------------- この状態だともちろんですが、CGIがあるディレクトリの一覧を表示します。(この状態で、表示する部分のプログラム(ソース?)が間違っていないことはわかります) この1つ下(同ディレクトリ内に「img」ディレクトリ作成)の内容を表示したいのですが、うまく出来ません。 単純に、 ---------------- opendir(DIR, "./img"); @dir_value = readdir(DIR); closedir(DIR); ---------------- と、してみましたがファイルを表示しません。 他にも、「./img/」または絶対パス(/home/~~)でもだめでした。 下または上のディレクトリを参照するのには上記変更だけでは出来ないのでしょうか? 方法がありましたらお願いします。

    • ベストアンサー
    • CGI
  • 指定のフォルダに指定のファイルがあったら画像を表示、なければ飛ばすいい方法(CGI)

    指定のフォルダに指定のファイルがあったら画像を表示、なければ飛ばすというようにしたいのです。 opendir (FOLDER,"img"); @FOLDERS = readdir (FOLDER); closedir(FOLDER); my ($cnt) = 0; foreach(@FOLDERS) { if ($_ =~ /.+\..+/) { $cnt++; } } $tate = $cnt/10; print "<TABLE CELLSPACING=0 CELLPADDING=2>\n"; print "<TR>\n"; for($i=1;$i<11;){ for($n=2;$n<$cnt;$n++){ $F = $FOLDERS[$n]; if("$i.jpg" eq "$F"){ print "<TD CLASS=TD1><IMG SRC='img/$i.jpg' HEIGHT=65 WIDTH=50><BR>$i</TD>\n"; $i=$i+1; } #if } #for $n } #for $i というようにしてみたのですが時間がかかりすぎてしまいます。 何かいい方法はないでしょうか?

    • 締切済み
    • CGI
  • tableがずれる理由がわかりません

    上のテーブルはずれないのですが 同じレイアウトの下のテーブルはずれます。 widthの指定がききません。 なぜでしょう?? 前からこの現象はしていたのですが理由が知りたいです。 <table border="1" cellpadding="0" cellspacing="1"> <tr height="10" bgcolor="#cccccc"> <td width="50" bgcolor="#ffffff" colspan="5"><img src="../../img/spacer.gif" width="50" height="10"></td> </tr> <tr height="10" bgcolor="#cccccc"> <td width="30" bgcolor="#ffffff" colspan="3"><img src="../../img/spacer.gif" width="30" height="10"></td> <td width="20" colspan="2"><img src="../../img/spacer.gif" width="20" height="10"></td> </tr> <tr height="10" bgcolor="#cccccc"> <td width="10" bgcolor="#ffffff"><img src="../../img/spacer.gif" width="10" height="10"></td> <td width="40" colspan="4"><img src="../../img/spacer.gif" width="40" height="10"></td> </tr> <tr height="10" bgcolor="#cccccc"> <td width="10" bgcolor="#ffffff"><img src="../../img/spacer.gif" width="10" height="10"></td> <td width="10"><img src="../../img/spacer.gif" width="10" height="10"></td> <td width="10"><img src="../../img/spacer.gif" width="10" height="10"></td> <td width="10"><img src="../../img/spacer.gif" width="10" height="10"></td> <td width="10"><img src="../../img/spacer.gif" width="10" height="10"></td> </tr> </table> <br /> <br /> <table border="1" cellpadding="0" cellspacing="1"> <tr height="10" bgcolor="#cccccc"> <td width="50" bgcolor="#ffffff" colspan="5"><img src="../../img/spacer.gif" width="50" height="10"></td> </tr> <tr height="10" bgcolor="#cccccc"> <td width="30" bgcolor="#ffffff" colspan="3"><img src="../../img/spacer.gif" width="30" height="10"></td> <td width="20" colspan="2"><img src="../../img/spacer.gif" width="20" height="10"></td> </tr> <tr height="10" bgcolor="#cccccc"> <td width="10" bgcolor="#ffffff"><img src="../../img/spacer.gif" width="10" height="10"></td> <td width="40" colspan="4"><img src="../../img/spacer.gif" width="40" height="10"></td> </tr> <tr height="10" bgcolor="#cccccc"> <td width="10" bgcolor="#ffffff"><img src="../../img/spacer.gif" width="10" height="10"></td> <td width="40" colspan="4"><img src="../../img/spacer.gif" width="40" height="10"></td> </tr> </table>