SQLの窓

2013年05月05日


PHP : 改行とタブと余り(%) でカレンダーを作成( 最終日は mktime で取得 )






入力した月によって、カレンダーを作成するという単純なものですが、初心者向けに、文字列はシングルクォートとドットで組み立てて、タブや改行のみダブルクォートを使用しています。

完全に画面と処理を分離していませんが、PHP に不慣れである事を想定して、HTML上部 > PHP の print > HTML の下部( + デバッグ出力 ) といった構成です。

月の最終日に関しては、マニュアルのサンプルコード部分に記述があります。

実際は、配列をカレンダーに埋め込んで、その配列にセットする条件を作るほうが簡単ですが、それだと動きが無いので初心者向けではありません。このほうが、PHP の特色をいろいろ感じながらできると思います。

最初から完成コードを見せずに、『どこで改行を入れるべきか』を考えてから作って行くのが良いと思います。( 画像内の表はヒントです )
<?php

	// HTML 側の meta 要素に依存せずにキャラクタセットを決定しています
	header( "Content-Type: text/html; Charset=utf-8" );

	// 未入力は1月とする
	if ( trim( $_GET['mon'] ) == '' ) {
		$_GET['mon'] = 1;
	}

	// HTML(画面) の主要部分を読み込んでいます
	require_once("html_head.php");

	print '<h1>' . $_GET['mon'] . '月の最終日は ' . last_date( $_GET['mon'] ) . ' 日です</h1>' . "\n";

	// HTML 上で改行コードやタブを利用する為に PRE 要素を使用しています
	print "<pre>";

	$week =  date('w', mktime(0, 0, 0, $_GET['mon'], 1, 2013));
	print '曜日は (' . $week . ') です' . "\n";
	print 'date 関数が返すのは文字列なので、$week には文字列が入ります' . "\n";

	print '<hr>';

	// $week の内容ぶんタブを出力する
	for( $i = 0; $i < ($week+0); $i++ ) {
		print "\t";
	}

	for( $i = 0; $i < 31; $i++ ) {
		print "\t" . ($i+1);
		if ( $week + ($i % 7) == 6 ) {
			print "\n";
		}

		if ( ($i+1) == last_date( $_GET['mon'] ) ) {
			break;
		}

	}

	print "\n\n";

	print "</pre>";

	// HTML(画面) の最終部分と、php のデバッグ(予備)部分を読み込んでいます
	require_once("html_footer.php");

// 2013年の指定月の最終日を求める
function last_date( $mon ) {

	$lastday = mktime(0, 0, 0, $mon+1, 0, 2013);
	$dd = date( 'j', $lastday );
	return ($dd+0);

}

?>




posted by lightbox at 2013-05-05 22:39 | PHP + ベーシック | このブログの読者になる | 更新情報をチェックする
container 終わり



フリーフォントで簡単ロゴ作成
フリーフォントでボタン素材作成
フリーフォントで吹き出し画像作成
フリーフォントではんこ画像作成
ほぼ自由に利用できるフリーフォント
フリーフォントの書体見本とサンプル
画像を大きく見る為のウインドウを開くボタンの作成

CSS ドロップシャドウの参考デモ
イラストAC
ぱくたそ
写真素材 足成
フリーフォント一覧
utf8 文字ツール
右サイド 終わり
base 終わり