
empty($_SERVER['REQUEST_URI'])とは、何のことでしょうか?
下記スクリプトの意味について教えてください。
//
// Fix unavailable $_SERVER['REQUEST_URI'] on IIS
//
if ( empty($_SERVER['REQUEST_URI']) ) {
$_SERVER['REQUEST_URI'] = $_SERVER['PHP_SELF'];
$_SERVER['REQUEST_URI'] .= ( !empty($_SERVER['QUERY_STRING']) ) ? '?'.$_SERVER['QUERY_STRING'] : '';
}
▼if ( empty($_SERVER['REQUEST_URI']) ) {
$_SERVER['REQUEST_URI']が空だったら、の意味が分かりません。
ページにアクセスするためのURIを指定しなかったら?
それは、どんな状況なのでしょうか?
▼$_SERVER['REQUEST_URI'] = $_SERVER['PHP_SELF'];
$_SERVER['REQUEST_URI']に、現在実行しているスクリプトのファイル名を利用。これは、何をしているのでしょうか?
▼$_SERVER['REQUEST_URI'] .= ( !empty($_SERVER['QUERY_STRING']) ) ? '?'.$_SERVER['QUERY_STRING'] : '';
クエリ情報(URLの"?"以降の文字列)が空でなければ、クエリ情報をくっつける。空だったら、くっつけない
結局、このスクリプトでは何をしようとしているのでしょうか?
また、このスクリプトがないと、どういう不具合が起きる可能性があると、想定されるでしょうか?
検索してみたら、下記のようなページがあったのですが、
IIS(サーバ?)固有の不具合回避対策なのでしょうか?
▽Dokeos Forum • View topic - IIS $_SERVER['REQUEST_URI']
http://www.dokeos.com/forum/viewtopic.php?t=8335

No.2ベストアンサー
- 回答日時:
IISで$_SERVER['REQUEST_URI']の値を取得できないとき、
無理やり$_SERVER['REQUEST_URI']を作るような処理が書いてあります。
コメント文とソースをそのまま読んでもなんとなくわかる
//
// IISでは$_SERVER['REQUEST_URI']が使用できないことがあるのでそれをなんとか使用できるようにしちゃいましょう
//
もし$_SERVER['REQUEST_URI']に値が入っていないなら {
$_SERVER['REQUEST_URI']にPHPスクリプトファイル名をまず入れて、
クエリ文字列があるならついでにそれも付けてやって$_SERVER['REQUEST_URI']を再現
}
No.3
- 回答日時:
他には、コマンドラインから php -f index.php みたいに実行すると
REQUEST_URI は空になります。
回答ありがとうございました。
>他には、コマンドラインから php -f index.php みたいに実行すると
>REQUEST_URI は空になります。
はじめて知りました。情報ありがとうございましたー
No.1
- 回答日時:
> $_SERVER['REQUEST_URI']が空だったら、の意味が分かりません。
これだけは なんとなく分ります。
ドメインだけ打った場合とかは REQUEST_URI は 多分 空っぽになります。
XAMPPで試したときは、ブラウザが 勝手に補完してるの知りませんが、スラッシュが入ってました。
んで、↓これに入るのは index.php とかだと思われます。
$_SERVER['REQUEST_URI'] = $_SERVER['PHP_SELF'];
正確には apache の httpd.conf の DirectoryIndex で 指定しているファイル名なんじゃないかなと。
他のは 意図が分りません。
俺 英語読めませんので リンク先もさっぱりでしたし。(´・ω・`)
回答ありがとうございました。
>ドメインだけ打った場合とかは REQUEST_URI は 多分 空っぽになります。
なるほど…。参考になりましたー
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
初心者
-
PHPでパソコン内のフォルダやフ...
-
PHP 勉強し始める
-
フリーでスクリプトを配布して...
-
3つ以上の論理積は利用可能なの...
-
ランキングサイト構築
-
PHPでのタイムアウト設定(HTTP...
-
FPDFについて
-
関数『readgzfile』について
-
教えて!goo(OKWEB)のようなyス...
-
フォントの色を変えるには?
-
PHPのif文でその処理を途中で抜...
-
FTPコマンドでディレクトリごと...
-
Illustratorで文字と画像を流し...
-
データ送信をボタンを押さずに...
-
バッチを用いたフォルダの自動移動
-
phpのクラスにて別ファイルの変...
-
Subversionのリポジトリの削除
-
下記のように文字化けするので...
-
デフォルトでトップページの表示
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
3つ以上の論理積は利用可能なの...
-
PHPのサーバでアクセスが急にお...
-
$_SERVER と $_ENV の違い
-
スクリプト終了時に呼び出す関...
-
phpと<?xml version="1.0" enco...
-
clean($_POST["**"])って??
-
ステップカウンタ(PHP)
-
円グラフ描画について
-
PHP5で自動的にinclude_once
-
PHPの吐くデバッグ行番号の見方...
-
オブジェクト指向の勘違い?
-
簡単な心理テストを作りたい
-
【PHP】メール受信時の文字化け...
-
読み込み先を制限するには…
-
最後1行だけ…どのように書き直...
-
PHPについての質問です。
-
PHP5専用(つまりPHP4と互換性...
-
empty($_SERVER['REQUEST_U
-
phpにて、ipアドレスによる処理...
-
PHPのif文でその処理を途中で抜...
おすすめ情報