Category Archives: PHP

[PHP]$_SERVER サーバ環境変数

PHPでは、サーバに関する環境変数はグローバル変数$_SERVERに格納されます。
HTTP_REFERERやREMOTE_ADDR、PHP_SELFなどスクリプト構築において欠かせない変数群を簡単に取得できるので、それぞれ暗記しておいて損はないです。

$_SERVER['GATEWAY_INTERFACE'] CGIのバージョン
$_SERVER['SERVER_NAME'] サーバ名
$_SERVER['SERVER_SOFTWARE'] サーバID
$_SERVER['SERVER_PROTOCOL'] プロトコル名・リビジョン(HTTP/1.0)
$_SERVER['REQUEST_METHOD'] リクエストの種類(HEAD・POST・GET・PUT等)
$_SERVER['QUERY_STRING'] クエリーを格納
$_SERVER['DOCUMENT_ROOT'] サーバのルートディレクトリ
$_SERVER['HTTP_ACCEPT'] Acceptヘッダの内容
$_SERVER['HTTP_ACCEPT_CHARASET'] Accept-Charasetヘッダの内容(eucなど)
$_SERVER['HTTP_ACCEPT_ENCODING'] Accept-Charasetヘッダの内容(gzipなど)
$_SERVER['HTTP_ACCEPT_LANGUAGE'] Accept-Languageヘッダの内容(jpなど)
$_SERVER['HTTP_CONNECTION'] Connectionヘッダの内容(Keep-Aliveなど)
$_SERVER['HTTP_HOST'] Hostヘッダの内容
$_SERVER['HTTP_REFERER'] 現在のページへのリンク元のURLを格納。
※ブラウザによっては設定しない場合や’Hidden-Referrer’などと設定する場合があり、必ずしも取得できるとは限らない。
$_SERVER['HTTP_USER_AGENT'] User_Agentヘッダの内容
(compatible; MSIE 6.0; Windows NT 5.0など)
$_SERVER['REMOTE_ADDR'] クライアントのIPアドレス
$_SERVER['REMOTE_PORT'] クライアントマシンで使用されているポート番号
$_SERVER['SCRIPT_FILENAME'] 実行中のスクリプトの絶対パス
$_SERVER['SERVER_PORT'] サーバで使用されているポート番号
$_SERVER['SERVER_SIGNATURE'] サーバのバージョン・ヴァーチャルホスト名
$_SERVER['PATH_TRANSLATED'] 実行中のスクリプトの物理パス
$_SERVER['SCRIPT_NAME'] 実行中のスクリプトのパス
$_SERVER['REQUEST_URI'] 指定されたURI
$_SERVER['PHP_SELF'] 実行中のスクリプトのドキュメントルートに対する相対パス
※PHPスクリプトなどで、自身にフォームを送信したい場合などにactionにこの変数を設定することが多い。

[CentOS][PHP]PHPのバージョンアップ方法

1.必要なRPM-GPG-KEYを取得
# rpm –import http://www.jasonlitka.com/media/RPM-GPG-KEY-jlitka

2.リポジトリ参照の設定を追加
# vi /etc/yum.repos.d/utterramblings.repo
―ここから―
[utterramblings]
name=Jason’s Utter Ramblings Repo
baseurl=http://www.jasonlitka.com/media/EL$releasever/$basearch/
enabled=1
gpgcheck=1
gpgkey=http://www.jasonlitka.com/media/RPM-GPG-KEY-jlitka
―ここまで―

3.PHPのversionUPをする
# yum update php
※PHPを指定しないとMySQLとか他のパッケージもアップグレードされますので注意

4.【2.】で追加したリポジトリ参照の設定を無効にする
# vi /etc/yum.repos.d/utterramblings.repo
―変更前―
enabled=1
―変更前―

―変更後―
enabled=0
―変更後―

5.Apacheの再起動
# /etc/rc.d/init.d/httpd restart

6.phpinfoにてVersion確認(Apacheのドキュメントルートに保存)
# vi phpinfo.php
―ここから―
phpinfo();
?>
―ここまで―

7.ブラウザにてhttp://ドメイン/phpinfo.phpへアクセスし
PHPのversionが5.2系である事を確認する。

8.phpinfo.phpの削除
# rm phpinfo.php

[PHP] デコメテンプレートのダウンロード偽装処理

DoCoMo
application/x-decomail-template .dmt

au
application/x-kddi-htmlmail .khm

SoftBank
application/x-htmlmail-template .hmt

DoCoMoとSoftBankはGET、POSTメソッドで対応。

auのみオブジェクトによる記述が必須。

プログラムを介してのダウンロードなど行う場合は、上記理由によりGETアクションとなる。

例:

data属性にプログラムと引数を渡して処理。

以下はざっくりとしたサンプル(auの場合)。


download.php