PHPで期間限定、一定確率でホームページが桜のデザインになる方法

 

こんにちは。オンラインの金沢です。

 

通勤電車の窓から外を眺めていると、日に日に桜の花が散っているのがわかります。私も桜は好きなほうですが、すぐに散ってしまうからこそ、珍しさや神秘さから魅力を感じるのではないでしょうか。

その発想からホームページで少し遊んでみました。ある条件下で背景やカラーが桜になるというものです。3月から5月までの期間限定で、ページ読み込み時の10パーセントの確率でデザインが変わります。

 

やり方はさほど難しくなく、HTMLヘッダーにPHPのif文でCSS読み込みタグを追加するだけです。条件判定用の関数を用意しておくと、ヘッダー内がスッキリします。

まず、3月から5月の間かどうかを確認する関数が次のようになります。

function is_spring() {
	$month = date( 'n' );
	if( $month >= 3 && $month <= 5 ) {
		return true;
	} else {
		return false;
	}
}

PHPのdate関数にフォーマットパラメータを「’n’」で指定すると今が何月かが数値で得られます。その値が3以上5以下であればtrueを返すようにしています。単純ですね。

次に、10パーセントの確率は次のような関数を作ってみました。

function is_percent( $percent = 100 ) {
	$rand = mt_rand( 1, 100 );
	if( $percent >= $rand ) {
		return true;
	} else {
		return false;
	}
}

引数$percentに100以下の数値を入れれば、その数値のパーセント確率でtrueを返します。mt_rand()が乱数を生成する関数となっており、パラメータを指定することで1から100までの100通りの数に制限しております(PHPマニュアル – 関数リファレンス参照)。この乱数が$percent以下になる確率が、求める確率となりますので、比較演算子でtrueかfalseを返すようにしております。

これらの関数をif文の条件式に&演算子で合わせて入れて、

if( is_spring() && is_percent(10) ):
	echo 'CSSファイル読み込みタグ';
endif;

のように記述することで実装完了です。

ホーム画面にて300回のリロードを「F5」キーで行ってみた結果では、37回も桜が咲きました。また、「Ctrl」+「F5」によるスーパーリロードで100回行ってみると、6回しか反応がありませんでした。これらの結果をあわせて確率を計算すると、実測値は10.7パーセントになります。少し大きいですが、誤差の範囲内と言えるでしょう。

 

今回、背景に使わせて頂いた桜の画像はホームページ用素材無料公開サイト「風と樹と空とフリー素材」からダウンロードさせて頂きました。花びらの密度が少し大きかったので、減らすようにPhotoshopで加工して使用させていただきました。

 

背景だけでなく見出しタグのカラーもピンクに変わるようにしました。やはり桜のデザインは……萌えますね。本日は以上となります。

金沢

著者プロフィール

金沢大樹

2年間のアルバイトを経て、平成27年度より社員として株式会社オンラインでWeb制作をしております。
WordPressを得意としており、プラグイン開発の経験もございます。
また、Monacaを使用したスマートフォンアプリ開発や、Visual BasicによるWindowsアプリケーション開発もできます。

コメントを残す

コメントは管理者による承認後に公開されます。

CAPTCHA