ホームページ  >  記事  >  バックエンド開発  >  PHP の $_SERVER['PATH_INFO']

PHP の $_SERVER['PATH_INFO']

WBOY
WBOYオリジナル
2016-06-23 14:32:571503ブラウズ

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 を解析するための非常に簡単なコードです:


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



$ _Server の分析 ['P PHP の ATH_INFO']

pp

、私はいつも無視します勉強するときに使わないときはそれを使うので(ちなみに、次の勉強を始めた学生に注意したいのですが、この習慣は非常に悪いです)、私は長い間それをうまく学ぶことができませんでした。今回も同じでした。これらの 2 つを見た後、長い間ネットで検索しても何も見つかりませんでしたが、大まかな意味がわかったのでテストすることにしました。自分自身の機能。 。 。 。 。

私のテスト方法と結果について話しましょう:

まず、ページ a.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 コードを次のように変更します:

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

これが何を意味するのかは自分で理解する必要があります。まだテストしていない他の効果があるかどうかはわかりません。お役に立てば幸いです。


より抜粋: http://hi.baidu.com/laosu1983/blog/item/49ec6b095542e8386159f310.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"] が何に使われるのか正確にはわかりません。 🎝

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
前の記事:PHP開発ツール次の記事:PHP開発ツール