![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
Perlで組んでいます。
メニューがあり、コンテンツを更新するとNew!とつけたいです。
1.お知らせ
2.ニュース
3.BLOG New!
・
・
・
管理画面を作り、
チェックボックスをメニューの数作りチェックしたナンバーを
カンマ区切りで記録するところまではOK。
たとえば、2,4,6など。
それを取り出して2番目、4番目、6番目のメニューにNew!マークを
つけたいのですが、いい案が思いつきません。
いま途中ですが、参考程度に見てください。
かなり中途半端な作りになっています。
↓↓
%menu = ("0" => "", "1" => "", "2" => "", "3" => "", "4" => "", "5" => "", "6" => "", "7" => "", "8" => "", "9" => "");
foreach $eachman (@txt) {
(@menu) = (split(/,/, $eachman));
}
#どの連想配列に更新マークをつけるか?
if ( $menu == 0 ) {
$span[0] = $sp;
} elsif ( $menu == 1 ) {
$span[1] = $sp;
} elsif ( $menu == 2 ) {
$span[2] = $sp;
} elsif ( $menu == 3 ) {
$span[3] = $sp;
} elsif ( $menu == 4 ) {
$span[4] = $sp;
} elsif ( $menu == 5 ) {
$span[5] = $sp;
} elsif ( $menu == 6 ) {
$span[6] = $sp;
} elsif ( $menu == 7 ) {
$span[7] = $sp;
} elsif ( $menu == 8 ) {
$span[8] = $sp;
}
#=メニュー画面抜粋==
<p><A HREF=\"$home/myne/">1.お知らせ</A>$span[0]</p>
<p><A HREF=\"$thisurl?>2.ニュース</A>$span[1]</p>
<p><A HREF=\"$thisurl?mycmd=>3.blog</A>$span[2]</p>
としています。連想配列を使ってシンプルに仕上げる方法
あるでしょうか?
No.2ベストアンサー
- 回答日時:
No.1です。
すみません。微妙に間違えていたので再投稿させていただきます。おそらく、データを記録するときに「2,4,6」とするよりも「0,1,0,1,0,1,0,0…」とした方が結果出力するときにやりやすいのではないかと思います。左からnewを付けたい場合に「1」付けたくない場合に「0」と順番にカンマ区切りで記録していきます。
その場合、
$itemmax = 9;#メニューの数
@menuname = ("メニュー1","メニュー2",…)
@url = ("URL1","URL2",…)
foreach $eachman (@txt) {
@menu = (split(/,/, $eachman));
}
for ($i=0;$i<9;$i++) {
$ix = $i+1;
if ($menu[$i]) { $w = "new!";} else { $w = "";}
print qq(<p><A HREF="$url[$i]">$ix.$menuname[$i]</A>$w</p>);
}
おかげさまでできました。
1,0,0・・のように記録するのはやめて7,8,9で
記録し、foreachでまわし、合致するメニュー番号のみに
New!マークがつくようにアレンジしました。
まだいろいろ改変したいのでそのときはぜひまた
よろしくお願いします。
No.3
- 回答日時:
($mtime) = (stat($file))[9];
とすると$fileの更新時間を取ってくれるので、それで判定すると自動でやってくれるので面倒では無い気もします。
@file=('a.htm','b.htm');
$time = time;
$i = 0;
foreach(@file){
($mtime) = (stat($file))[9];
$mtime += 60*60*24*1; # 更新時間の一日後
if($time < $mtime){
$span[$i] = 'New';
}
とかすると自動でいい感じになるやもしれませぬ。
実運用だとデータをテキストで持って
0\お知らせ\tinfo.htm\tmynu/\n
1\tニュース\tnews.dat\tnews.cgi\n
2\tblog\tblog.dat\t./blog/\n
とかして、
foreach $data (@data) {
chomp($data);
($a,$b,$c,$d) = split(/\t/,$data);
($mtime) = (stat($c))[9] + 60*60*24*1;
print qq|<p><A HREF="$d">$b</A>|;
if($time < $mtime){
$span[$i] = 'New';
}
print qq|</p>\n|;
}
とかやればメンテがしやすいと思います。
No.1
- 回答日時:
おそらく、データを記録するときに「2,4,6」とするよりも「0,1,0,1,0,1,0,0…」とした方が結果出力するときにやりやすいのではないかと思います。
$itemmax = 9;#メニューの数
@menuname = ("","メニュー1","メニュー2",…)
foreach $eachman (@txt) {
@menu = (split(/,/, $eachman));
}
for ($i=1;$i<=9;$i++) {
if ($menu[$i]) { $w = "new!";} else { $w = "";}
print qq(<p><A HREF="URL">$i.$menuname</A>$w</p>);
}
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- HTML・CSS ヘッダーの画像にメインエリアがかぶってしまいます 1 2022/11/28 14:06
- HTML・CSS アコーディオンメニューが思うように動作しません。 1 2023/08/20 16:48
- HTML・CSS 書籍を見つつサイト造りの練習をしているのですが、見た目が一致しません 2 2022/11/28 15:00
- HTML・CSS FC2カートのテンプレートでの商品表示について 1 2023/03/02 18:05
- HTML・CSS CSSのホバーエフェクト 1 2023/06/19 06:53
- PHP ここでの ②if($su_d<>"")の比較演算子 を使う理由は 1 2022/03/26 02:33
- その他(プログラミング・Web制作) pythonのWebスクレイピングでfind_allだとurlがNoneに 4 2022/04/17 18:21
- PHP ランキングを表示する際の画像の大きさを固定することは可能でしょうか? <?php if ( has_ 1 2022/07/21 14:55
- PHP htmlspecialcharsが機能していないです。 バグですか? 1 2022/04/05 01:22
- 英語 ①普通名詞の所有格+②普通名詞で、①普通名詞に定冠詞の意味を付加したい場合の表現方法等について 23 2022/09/30 12:47
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ひとつのCGIファイルに複数のペ...
-
パスワード認証のCGI
-
Ruby/DBIが上手く動きません。。
-
sendmailを使って宛て...
-
レンタルサーバーでperlのcgiフ...
-
socketを使って外部のファイル...
-
掲示板などのCGIにおけるスタイ...
-
Yomi-Search新規ウインドで開く...
-
伝言掲示板の作成(超初心者です)
-
Perlのファイルのアップロード...
-
4年に1回+6,62以上は1の位を...
-
CSVを読み込んでメニューを作成...
-
ファイルのアップロードができ...
-
wordの数式について 定積分を書...
-
ラジオボタンが両方とも選択で...
-
(Perl)ReadParseによるハッシ...
-
pythonのnumpyでの列(縦)ベク...
-
複数ボタンのvalueを送れない
-
チェックボックスの返す値
-
EXCELとの連携
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
htmlからパラメータで、cgiに渡...
-
sendmail 送信先を複数設定す...
-
iis+cgiでmultipart/form-data...
-
フォントサイズを変えるには?
-
CGI経由でのPDFファイルをダウ...
-
perl/cgi リダイレクトができない
-
2つのドメイン、同じサーバー。...
-
サーバー上のPDFにCGIでパスワ...
-
クッキー書き込みが正常に行わ...
-
cgi(perl) sendmailの使い方
-
CGI
-
クッキーを使って投票欄に名前...
-
TOK2で基礎的なCGIをUPしたが動...
-
クオートの多重入れ子をするには?
-
CGIでテキストボックスの内容に...
-
フォームメール(iモード用)で...
-
プログラム実行中の待機ページ...
-
ホームページビルダーで作ったh...
-
substrで数値を抽出してのマッ...
-
perlで重複データを集計
おすすめ情報