メニューのページと、
日付や区分が載っているCSVがあります。
data.csvのレコード
2005/04/01 一般
2005/04/08 特別
2005/04/15 一般
このCSVを自動的に読み込んで、「一覧」をクリックすると、
該当の日付の一覧に飛ぶというページを作りたいのですが、
どういう風に作成すれば良いかわかりませんでした。
どなたかわかる方がいらっしゃいましたら、アドバイスを頂きたいのですが。
毎回HTMLの日付とリンクを更新すれば出来るのですが、
CSVの入れ換えだけで実現出来るようにしたいです。
下のタグがメニューの一部です。
2005/04/01や2005/04/08といった部分をCSVが読み込んで作成し、
一般や特別などの項目、一覧のリンクの"050401/index.html"という部分も自動的に作成出来るようにしたいです。
<table border="0" cellpadding="5" cellspacing="2">
<tr>
<td>2005/04/01</td>
<td>一般</td>
<td><a href="050401/index.html">一覧</a></td>
</tr>
<tr>
<td>2005/04/08</td>
<td>特別</td>
<td><a href="050408/index.html">一覧</a></td>
</tr>
<tr>
<td>2005/04/15</td>
<td>一般</td>
<td><a href="050415/index.html">一覧</a></td>
</tr>
</table>
自分ではこういった方法しか思い浮かばなかったのですが、
メニューを自動的に作りたいというのが趣旨です。
他の方法でも出来るのであればご指導頂きたいです。
CGIの知識はカスタマイズ程度の知識しかありませんので、
もしこちらに記載できるようなソースであれば書いていただけると大変助かります。
もしくは、フリーのCGIでこういったものを見かけたことがあるという方がいらっしゃいましたら、
教えていただけると助かります。
宜しくお願い致します。
No.1ベストアンサー
- 回答日時:
かなり適当です
サンプル程度に。
#!/usr/bin/perl
print "Content-type: text/html\n\n";
open( XXX,"./data.csv" );
@LIST=<XXX>;
print "<table border=\"1\" cellpadding=\"5\" cellspacing=\"2\">";
for($i=0;$i<@LIST;$i++){
@LINE=split(/\,/,@LIST[$i]);
@DAY=split(/\//,@LINE[0]);
$YEAR=substr(@DAY[0],2,2);
$DIR=$YEAR.@DAY[1].@DAY[2];
print "<TR>";
print "<TD>@LINE[0]</TD><TD>@LINE[1]</TD><TD><A HREF=\"$DIR/index.html\">一覧</A
></TD>";
print "</TR>";
}
print "</TABLE>";
No.3
- 回答日時:
HTTPヘッダの出力とかは省略してますが一番シンプルでメモリ節約で書くと・・・
open(IN,"./hoge.csv");
print qq|<table border="0" cellpadding="5" cellspacing="2">\n|;
while(<IN>){ #一行ずつ読む
chomp; #改行を取り除く
($date,$title) = split(/,/); #年月日とタイトルを分ける(区切りは「カンマ(,)区切り」と仮定)
($date_uri = $date) =~ tr/\///d; #年月日の/を取り除く
print qq|<tr>\n<td>$date</td>\n<td>$title</td>\n<td><a href="$date_uri/index.html">一覧</a></td>\n</tr>|;
}
print "</table>\n";
close(IN);
この回答への補足
ありがとうございます。
試してみました。出来ました!
開くフォルダの名前が20050401や20050408などのフォルダになってしまうのですが、
050401など、年度の部分を2桁にするにはどのように変更すればよろしいでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) Selenium.ChromeDriverの使い方について 7 2022/09/22 06:43
- HTML・CSS テーブルタグのセルの幅の一部だけを指定 1 2023/03/12 12:02
- JavaScript EasyUIのSubGrid(jquery)におけるObjectに入れた連想配列について 1 2022/05/02 11:21
- PHP htmlで複数の個数入力欄を表示させるには 1 2022/09/20 03:11
- JavaScript jQueryで同じクラス名のものを別物として扱いたい 1 2022/06/17 14:14
- AJAX JavascriptからPHPへのAjax通信でnullが返ってくる 3 2022/08/03 22:00
- HTML・CSS 自身のHPにYouTube動画を貼り付けるのが出来なくなり困ってます 1 2022/11/11 10:44
- HTML・CSS 【CSS】:hasで可能? imgを含むtr要素を選択したい 1 2022/11/17 14:36
- MySQL SQL任意に並び替えをしたい 2 2023/08/28 10:47
- SEO googleサーチコンソールで、重複URLが多数発生、その修正方法について 2 2023/06/23 16:15
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
htmlからパラメータで、cgiに渡...
-
フォントサイズを変えるには?
-
指定のフォルダに指定のファイ...
-
サーバー上のPDFにCGIでパスワ...
-
wordの数式について 定積分を書...
-
ラジオボタンが両方とも選択で...
-
チェックボックスの返す値
-
WEBページを強制的に横画面で見...
-
INPUT TYPE
-
1つのformに2つのsubmitボタン
-
FC2 掲示版のカスタマイズの仕...
-
「value」に2つの値をセットす...
-
<select>タグの幅設定
-
IIS の@INC ERRORについて教えて
-
MSPゴシックで、一番幅を取る文字
-
iPhoneでセレクトボックスが選...
-
プログラミングについての質問...
-
index.html(トップページ)か...
-
電話番号を読み込むプログラム...
-
別formのhidden項目を自form値...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
htmlからパラメータで、cgiに渡...
-
metaタグについて
-
CGI経由でのPDFファイルをダウ...
-
sendmail 送信先を複数設定す...
-
perl/cgi リダイレクトができない
-
iis+cgiでmultipart/form-data...
-
フォントサイズを変えるには?
-
テキストエリアのインプットをP...
-
ホームページビルダーで作ったh...
-
cgi(perl) sendmailの使い方
-
CSVを読み込んでメニューを作成...
-
フォームメール(iモード用)で...
-
POST送信
-
CGIで~秒後にジャンプします。...
-
cgiについて教えて下さい。
-
CGI内でけいたいスマホの振り分け
-
CGIから表生成(1行に数件のデ...
-
ログファイルの編集についてお...
-
CGI
-
Yomi-Search追加機能で・・・
おすすめ情報