PHP のグローバル変数 $_SERVER['PATH_INFO'] は、多くの CMS システムが URL を美しくするときにこのパラメータを使用します。
次の URL の場合:
http://www.test.com/index.php /foo/bar.html ?c=index&m=search
$_SERVER['PATH_INFO'] = '/foo を取得できます/bar.html'、この時点では $_SERVER['QUERY_STRING'] = 'c=index&m=search';
通常、最初に PHP プログラムを書き始めるときは、http://www. com/index.php?c=search&m=main のような URL は非常に奇妙に見えるだけでなく、検索エンジンにとっても非常に不親切です。多くの検索エンジンはインデックス作成時にクエリ文字列以降のコンテンツを無視しますが、Google はクエリ文字列を無視しませんが、クエリ文字列を含まない他のページには比較的高い PR 値を与えます。
これは PATH_INFO を解析するための非常に簡単なコードです:
php
if ( ! isset ( $_SERVER [ ' PATH_INFO ' ] ) ) {
$pathinfo = 'default ' ; $pathinfo =explode ( ' / ' , $_SERVER [ ' PATH_INFO ' ]);
}
if ( is_array ( $pathinfo ) && ! empty ( $pathinfo ) ){
$page = $pathinfo [ 1 ]; else {
$page = ' a.php ' ;
}
require " $page .php " AN PathInfo
$_SERVER['PATH_INFO'] ができない場合表示されます
Apache で開く必要があります:
Options Indexes FollowSymLinks
AcceptPathInfo On
pp
、私はいつも無視します勉強するときに使わないときはそれを使うので(ちなみに、次の勉強を始めた学生に注意したいのですが、この習慣は非常に悪いです)、私は長い間それをうまく学ぶことができませんでした。今回も同じでした。これらの 2 つを見た後、長い間ネットで検索しても何も見つかりませんでしたが、大まかな意味がわかったのでテストすることにしました。自分自身の機能。 。 。 。 。
まず、ページ a.php を作成しました。コードは次のとおりです:
php
echo $_SERVER [ ' REQUEST_URI ' ]
?>
結果の取得: /a .php
アドレス 2 をテストします: http://localhost/a.php?id=123 結果を取得します: /a.php?id=123
アドレス 3 をテストします: http://localhost/a.php/123 .html 結果を取得します :/a.php/123.html
つまり、$_SERVER['REQUEST_URI'] は基本的にアドレス内/以降のすべてのコンテンツを取得します
a.php コードを次のように変更します:
php
echo $_SERVER [ ' PATH_INFO ' ]
?> http://localhost/a.php?id=123 も結果が得られず、さらに落ち込んでいます。わかりません、この機能が何を意味するのか本当にわかりません、そして非常に不快に感じます。諦めて Baidu を続けようとしたとき、偶然次のテストを実行してしまいました。とても幸運でした
テスト アドレス 3: http://localhost/a.php/123.html 結果を取得/123.html
最後に何かを追加します。アドレス 4 をテストします: http://localhost/a.php/123.html?id=2222 結果は次のようになります: /123.html
これが何を意味するのかは自分で理解する必要があります。まだテストしていない他の効果があるかどうかはわかりません。お役に立てば幸いです。
$_SERVER["PATH_INFO"] 結果はありません!
実際のスクリプト名の後に、クエリ文字列が存在する場合はその前に、クライアントによって提供されたパス情報が含まれます。たとえば、現在のスクリプトが URL http://www.example.com/php/path_info.php/some/stuff?foo=bar 経由でアクセスされる場合、$_SERVER['PATH_INFO'] には /some/stuff が含まれます。 。
これは、PHP マニュアルで紹介されています。書き換えを使用する場合は、上記のパスにある path_info.php を削除します。つまり、パスを http://www.example.com/php/some/stuff?foo=bar に書き換えます。 $_SERVER ['PATH_INFO'] も無価値です。 $_SERVER["PATH_INFO"] が何に使われるのか正確にはわかりません。 🎝