メニューのページと、
日付や区分が載っている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ランキング
-
perl/cgi リダイレクトができない
-
htmlからパラメータで、cgiに渡...
-
wordの数式について 定積分を書...
-
ラジオボタンが両方とも選択で...
-
python subprocessに関する質問
-
INPUT TYPE
-
ローカルテストサーバーと本番...
-
別formのhidden項目を自form値...
-
左右のフレームを同時にスクロ...
-
裏掲示板の見方
-
チェックボックスで選択した内...
-
perlで書いたcgiでsqliteの使い...
-
「value」に2つの値をセットす...
-
チェックボックスグループの一...
-
誕生日のカウントダウン日数を...
-
リストボックス(multipleなsel...
-
チェックボックスでのvalue値の...
-
FORMのselectの選択肢を最初か...
-
perlを難読化、暗号化させたい
-
心理テストページをCGIで作りた...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
perl/cgi リダイレクトができない
-
htmlからパラメータで、cgiに渡...
-
フォントサイズを変えるには?
-
CGI経由でのPDFファイルをダウ...
-
CGI
-
プログラム実行中の待機ページ...
-
メイルフォームの本文が文字化け
-
Yomi-Searchのカテゴリを縦並び...
-
cgi(perl) sendmailの使い方
-
iis+cgiでmultipart/form-data...
-
sendmail 送信先を複数設定す...
-
サーバー上のPDFにCGIでパスワ...
-
指定のフォルダに指定のファイ...
-
<FORM TYPE="subumit">でデータ...
-
wordの数式について 定積分を書...
-
ラジオボタンが両方とも選択で...
-
select値をhiddenのvalueに渡し...
-
「value」に2つの値をセットす...
-
チェックボックスの返す値
-
INPUT TYPE
おすすめ情報