私が読んだことから、クエリ文字列が常に正しく返される$_SERVER['REQUEST_URI']
とは限らないようですが、成功率が何であるかを誰かがよく理解していますか?ほとんどの場合、平均的なクライアントで機能しますか?
どちらかといえば、何REQUEST_URI
が入力されないか、クエリ文字列が含まれない原因になりますか?
私が読んだことから、クエリ文字列が常に正しく返される$_SERVER['REQUEST_URI']
とは限らないようですが、成功率が何であるかを誰かがよく理解していますか?ほとんどの場合、平均的なクライアントで機能しますか?
どちらかといえば、何REQUEST_URI
が入力されないか、クエリ文字列が含まれない原因になりますか?
あなたは尋ねました:
REQUEST_URI が入力されない原因は何ですか?
私が考えることができる答え:
Web サーバーはすべての$_SERVER
値を PHP に提供するため、サーバーがそれらを提供しない場合、値は設定されません。これは、まともな Web サーバーではほとんどありませんが、可能です。
コマンド ラインから PHP プログラムを実行する場合、値はありません$_SERVER
。(これについて心配していない場合は、通常、単体テストはコマンド ラインから実行されるため、ベスト プラクティスに従って単体テストを記述しているかどうかは重要であることを覚えておいてください)
REQUEST_URI が入力されない原因は何ですか?
Google 検索は、これが IIS の場合であったことを示しているようです (ただし、当時は真実でしたが、現在はそうではない可能性があります)。
https://bugs.launchpad.net/xibo/+bug/654536
(IIS の修正に関する記事があります: http://davidwalsh.name/iis-php-server-request_uri )
また、「サーバー」が標準のWeb サーバーではない場合 (サーバー プラグインのデバッグなど) も同様です。
これは、あまり知られていない、または古いバージョンの Web サーバー (lighthttpd、iPlanet Web Server 7.0)のバグであると認識されていました。
したがって、変数が常に入力されることを合理的に確信できると思います。もちろん、事前に警告されるように、顧客のサイトで実行する非常に小さなテスト スクリプトをできるだけ早く準備しておくことをお勧めします。