電子書籍の厳選無料作品が豊富!

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

A 回答 (3件)

IISで$_SERVER['REQUEST_URI']の値を取得できないとき、


無理やり$_SERVER['REQUEST_URI']を作るような処理が書いてあります。

コメント文とソースをそのまま読んでもなんとなくわかる
//
// IISでは$_SERVER['REQUEST_URI']が使用できないことがあるのでそれをなんとか使用できるようにしちゃいましょう
//
もし$_SERVER['REQUEST_URI']に値が入っていないなら {
 $_SERVER['REQUEST_URI']にPHPスクリプトファイル名をまず入れて、
 クエリ文字列があるならついでにそれも付けてやって$_SERVER['REQUEST_URI']を再現
}
    • good
    • 0
この回答へのお礼

回答ありがとうございました。
参考になりましたー

お礼日時:2011/11/14 20:15

他には、コマンドラインから php -f index.php みたいに実行すると


REQUEST_URI は空になります。
    • good
    • 0
この回答へのお礼

回答ありがとうございました。

>他には、コマンドラインから php -f index.php みたいに実行すると
>REQUEST_URI は空になります。
はじめて知りました。情報ありがとうございましたー

お礼日時:2011/11/14 20:16

> $_SERVER['REQUEST_URI']が空だったら、の意味が分かりません。



これだけは なんとなく分ります。
ドメインだけ打った場合とかは REQUEST_URI は 多分 空っぽになります。
XAMPPで試したときは、ブラウザが 勝手に補完してるの知りませんが、スラッシュが入ってました。
んで、↓これに入るのは index.php とかだと思われます。

$_SERVER['REQUEST_URI'] = $_SERVER['PHP_SELF'];

正確には apache の httpd.conf の DirectoryIndex で 指定しているファイル名なんじゃないかなと。

他のは 意図が分りません。
俺 英語読めませんので リンク先もさっぱりでしたし。(´・ω・`)
    • good
    • 0
この回答へのお礼

回答ありがとうございました。

>ドメインだけ打った場合とかは REQUEST_URI は 多分 空っぽになります。
なるほど…。参考になりましたー

お礼日時:2011/11/14 20:17

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!