[5]時刻・環境変数の所得
【環境変数:日時関連の関数】 PHPの基本の章でも記載しましたが、サーバの情報やクライアントの情報を得るには「 定義済み変数 」を使い、日時情報を得るには「 日付・時刻関数 」を 使います。 定義済み変数とはPHPモジュールが実行される時にあらかじめ所得され、格納された変数の事です。 では、最初に定義済み変数を見てみる事にしましょう。 「サーバのPHP対応状況を確認する」で提供しているinfo.phpと同じものですが、 以下のコードを作り、サーバにアップロードしてアクセスしてみてください。 このプログラムはソースをコピーしたりせずに、ご自分でタイプしてみてください。 また、ここ以降はそれぞれの関数についての個別解説はしませんので、 出てくる関数についての詳細はマニュアルを参考にしてください。
<?php
/////////////////////////////////////////// //PHPプログラムの動作テスト //定義済み変数を見てみる /////////////////////////////////////////// phpinfo(); ?> コードはこれだけです。 「サーバのPHP対応状況を確認する」で表示したようなphp情報が表示された筈です。 では、下の方にスクロールして「PHP Variables」の項を見てください。 PHP Variables
これらが、定義済み変数$_SERVERと$_ENVです。これらを読み出すには先頭に「$」を 付けて$_SERVER["SCRIPT_NAME"]のように読み出します。 簡単な説明はそれぞれ個別に書いてありますので参考にしてください。 ・$_SERVER["HTTP_REFERER"] ↑はどこから来たのか直前のサイトURLが格納されています。 ・$_SERVER["HTTP_HOST"] ↑はサーバのドメイン名が格納されています。 ・$_SERVER["REMOTE_ADDR"] ↑は接続しているクライアントのリモートIPが格納されています。 ・$_SERVER["SCRIPT_NAME"] ↑は実行中のスクリプトのURLパスが格納されています。 おおよそ使用する$_SERVER変数は上の4つだと思います。 では実際に読み出してみましょう。
<?php
/////////////////////////////////////////// //PHPプログラムの動作テスト //定義済み変数を見てみる /////////////////////////////////////////// print $_SERVER["HTTP_HOST"]."<br>"; print $_SERVER["REMOTE_ADDR"]."<br>"; print $_SERVER["SCRIPT_NAME"]; ?> info.phpのものと同じものが表示された筈です。 これらの情報は接続してきたクライアントのIP情報を得るアクセス解析などや、 フォームによるデータの受渡し時、リファイラによるアクセス制限などを行う時などに 使います。 この他に定義済み変数には$_POST、$_GETなどのフォームデータの受渡し変数や、$_COOKIE、$HTTP_COOKIE_VARS などのクッキー受渡し変数、$_SESSIONセッションの受渡し変数がありますが、これらはそれぞれの 解説ページで解説します。 次に日時関連の関数について解説します。 メモ帳などを開いて以下のコードを作成し、適当な名前でサーバにアップロードしてください。
<?php
/////////////////////////////////////////// //PHPプログラムの動作テスト //日時関連の関数 /////////////////////////////////////////// //サーバに設定されている時刻を見る(UNIXタイムスタンプ) print time ()."<br>"; //サーバに設定されている時刻を見る(整形済み時刻) print date ("Y年m月d日H時i分s秒")."<br>"; ?> 最初のtime()では数字の羅列が表示され、次のdate()ではちゃんとわかり易く整形されて表示された筈です。 time()では1970年1月1日0時0分0秒からの秒数が表示されています。 通常UNIX系サーバではこのUNIXタイムスタンプを使用しますので、データの受渡しや加工にはtime関数で得た 値を使用します。date関数はこのtime関数から得た値を整形している関数です。 試しにファイルの更新日時を得る関数filemtime()を使ってファイルの更新日時を得てみましょう。
<?php
/////////////////////////////////////////// //PHPプログラムの動作テスト //日時関連の関数 /////////////////////////////////////////// //更新日時を調べるファイル名を指定 $file_name=explode("/",$_SERVER['SCRIPT_NAME']); //自分のファイルネームのみ得る為のカウント $i=count($file_name); //更新日時を調べる $flile_now=filemtime($file_name[$i-1]); //更新日時を表示 print $flile_now."<br>"; ?> filemtime()はUNIXタイムスタンプで値を返しますので数字の羅列が表示されます。 これではよく解らないのでdate関数で整形してみましょう。
<?php
/////////////////////////////////////////// //PHPプログラムの動作テスト //日時関連の関数 /////////////////////////////////////////// //更新日時を調べるファイル名を指定 $file_name=explode("/",$_SERVER['SCRIPT_NAME']); //自分のファイルネームのみ得る為のカウント $i=count($file_name); //更新日時を調べる $flile_now=filemtime($file_name[$i-1]); //更新日時を表示 print date("Y年m月d日H時i分s秒",$flile_now)."<br>"; ?> 今度はちゃんとわかり易く表示されましたね。 日時関連の関数はこのように使用します。簡単でしたね。これで終わりです。 |
TOPへ |