2012

10

1

PHPで『第○週の○曜日を指定してソースを出力』してやんよ!!!

スポンサードリンク


PHPで『今日(又は指定した日)が第○週の○曜日か?』を求めて出力するような関数を勉強しましたが、実際にプログラムの機能として使えるレベルというにはいささか使い道が偏った仕様ではないか?・・・と・・・

第一、「今日が第○週の○曜日か知りたーい!!」なんてお願い○ンキング的な案件はカレンダーを見れば済む話だし、関数としても教材以外ではあんまり重要もないであろうというコトで・・・

俺メモ|Web時々アプリさんのサイトで指定週と曜日の日付を取得するという記事で作っていただいた関数をもとに


指定した週の曜日にソース表示させる時限式関数をつくる。



まずは俺メモ|Web時々アプリさんで作られた関数

$n = 2; // 第n
$w = "日"; // w曜日

funcDesignatedDay($n, $w);

function funcDesignatedDay($n, $w){
$year_val = date(Y); // 年を取得
$month_val = date(m); // 月を取得

$arr_week = array("日", "土", "金", "木", "水", "火", "月");

for($i = 0; $i if($w == $arr_week[$i]){
$w_no = $i;
}
}

// 曜日番号を取得(0:日曜日~6:土曜日)
$week_no = date('w',strtotime("$year_val/$month_val/1"));

$d = (7*$n)+1;
if((8 - ($week_no + $w_no)) $day = ($d - ($week_no + $w_no) + 7);
}else{
if($w_no == 0 && $week_no == 0){
$day = ($d - ($week_no + $w_no) - 7);
}else$day = ($d - ($week_no + $w_no));
}
}
return $day;
}

この関数をもとに、新たに記述したいソースを変数$textに代入し、

$text = '出力してやんよ!!!';

変数$dayで取得した数値を現在の日付と比較して
指定した日付になったらソースを出力。
指定日以外は出力しない仕様の関数を作る。

function funcCommentPut($text, $designatedDay){
	$todayNum = date(j); //今日の日にちを取得
	$bannerComment = array(); //コメントタグの配列に

	if($todayNum >= ($designatedDay-4) && $todayNum 		$bannerComment['start'] = '<!--'.$text.'start -->'."\n"; //コメント始め
		$bannerComment['end'] = '<!--'.$text.'endt -->'."\n"; //コメント閉じ
	}else{
		$bannerComment['start'] = '<!-- start '.$text."\n"; //コメント始め 		$bannerComment['end'] = $text.' end -->'."\n"; //コメント閉じ
	}
	return $bannerComment;
}


追加設定として指定日の4日前から出力しておく仕様で作ってある。

変数$bannerCommentに配列を作り、それぞれ[‘start’][‘end’]として持ち、コメントの始めと終わりとして設定。

$designatedDay = funcDesignatedDay($n, $w);
$htmlComment = funcCommentPut($text, $designatedDay);

指定週の曜日の日付けを取得する実行プログラムと、
それを引き継いで指定日にソースを出力する実行プログラムを記述。
そしてHTMLのソースの任意の箇所にphp関数を呼び出す記述。

<!--?php echo $htmlComment['start']; ?-->

『第○週の○曜日に出てきてやんよ!!!』

<!--?php echo $htmlComment['end']; ?-->

これで準備オッケー(ψ≧ڡ≦ψ)ペロッ☆




【実行結果】(指定日以外)


<!-- start 出力してやんよ!!!

『第○週の○曜日に出てきてやんよ!!!』

出力してやんよ!!! end -->

【実行結果】(4日前~指定日)

<!--出力してやんよ!!!start -->

『第○週の○曜日に出てきてやんよ!!!』

<!--出力してやんよ!!!endt -->

となる。
期間限定イベント用のバナーやテキストなんかに使うのにはもってこいな関数です。

トップへ