wp-settings.php (5) $_SERVER その他


[wp-settings.php 解析 | WP2.7 関連記事]
WordPrss3.5 wp-settings.php 解析はこちら

「wp-settings.php」の続きをみていきます。
処理の意味も詳しくみていく予定でしたが、解析中に2.8がリリースされたのでとりあえず2.7の流れだけみていきます。
処理の詳しい内容は2.8の解析で行いたいと思います。

※wordress2.7で解析しています。

【 前回まで 】
analyze08

では「wp-settings.php」の続きをみていきます。


⑥ $_SERVER['PATH_INFO'] の破棄
// Fix for Dreamhost and other PHP as CGI hosts
if (strpos($_SERVER['SCRIPT_NAME'], 'php.cgi') !== false)
	unset($_SERVER['PATH_INFO']);

コメントをみてみると, 「Dreamhostとその他ホスティングサーバのCGI型PHPの調整」と書かれています。
「Dreamhost」について調べてみましたが、アメリカの大手ホスティングサーバのようです。
処理自体は、実行ファイルに「php.cgi」という文字列が含まれていれば、$_SERVER['PATH_INFO']を破棄しているだけです。
なぜ、$_SERVER['PATH_INFO'] を破棄しているのかはよくわかりませんでした。
$_SERVER['PATH_INFO'] の問題点について書かれているサイトがあったので紹介しておきます。記事は少し古いです。

WikiFan - CGI/環境変数PATH_INFOとその問題点について
PATH_INFO Changes in the CGI Environment


⑦ $_SERVER['PHP_SELF'] の調整
// Fix empty PHP_SELF
$PHP_SELF = $_SERVER['PHP_SELF'];
if ( empty($PHP_SELF) )
	$_SERVER['PHP_SELF'] = $PHP_SELF = preg_replace("/(\?.*)?$/",'',$_SERVER["REQUEST_URI"]);

$_SERVER['PHP_SELF'] が取得できなければ、同じ値を他の方法から取得して代入しています。

preg_replace("/(\?.*)?$/",'',$_SERVER["REQUEST_URI"])

ですから、アクセスしたURL(REQUEST_URI)から、正規表現「/(\?.*)?$/」に該当する部分を空にしています。
正規表現をみてみると「?以降の文字」みたいなので引数を削除しているようです。
$_SERVER["PHP_SELF"] や $_SERVER["REQUEST_URI"] にどのような値が代入されるかは
taka.at/blog」がサーバによる値を比較していましたので参考にしてください。


[wp-settings.php 解析 | WP2.7 関連記事]
WordPrss3.5 wp-settings.php 解析はこちら

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です