![]()
入力した月によって、カレンダーを作成するという単純なものですが、初心者向けに、文字列はシングルクォートとドットで組み立てて、タブや改行のみダブルクォートを使用しています。 完全に画面と処理を分離していませんが、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); } ?>
|
【PHP + ベーシックの最新記事】
- PHP : ユニークなキーの取得
- PHP で漢字スペースと通常スペースのトリムとPHP正規表現チェッカー(置き換え)
- PHP で HTML数値エンティティを、目的のキャラクタセットの文字列に変換する
- PHP : $_GET、$_POST、$_SESSION とグローバル変数全ての簡単な表示方法
- Windows・Unix(Linux)共用、PHPの include_path の動的設定方法
- PHP : PHPコマンドラインから使用中の ini ファイルをチェック
- 初心者用ファイルアップロード用テンプレート( 含 HTML5 の multiple="true" )
- PHP : 前ゼロ文字列作成と右から必要な長さ文字列を取得する処理
- PHP : date 関数