2

Windows 7 で WampServer バージョン 2.2、Apache バージョン 2.2.22、および PHP バージョン 5.3.13 を使用しています。

$this->url = $_SERVER['PATH_INFO'];Request ファイルで使用しようとすると、次のエラーが発生しました。

注意: 未定義のインデックス: 8 行目の C:\wamp\www\site\core\Request.php の PATH_INFO

httpd.confAcceptPathInfo On For PHP を追加するようにファイルを構成しようとしたphp.iniので、追加しましcgi.fix_pathinfo = 1たが、問題は解決しませんでした。

どうすればこれを修正できますか?

4

5 に答える 5

6

PATH_INFOURL書き換えを使用していない場合(または、PHPファイルを「ディレクトリとして」参照している場合)は未定義です。ここを参照してください:PHPのPATH_INFOとは正確には何ですか?

したがって、これを行っている場合: GET /foo/bar.php?query=foothenPATH_INFOは未定義になります。

これを行うGET /foo/bar.php/baz?query=fooと、PATH_INFO次のように定義され/bazます。

于 2013-07-14T01:10:08.697 に答える
2

例えばROOT = 'C:\wamp\www\mySite'

$_SERVER['PATH_INFO']次のコードを使用すると、同じ結果 ( ) が得られると便利です。

<?php
    class App{
        public static function get__PATH_INFO($path){
            $path_elements = explode("/", $path);
            $tempPI = "";
            if (isset($path_elements[2])){
                for ($i = 2 ;$i < count($path_elements); $i++ )
                    $tempPI .= "/".$path_elements[$i];
            }
            return $tempPI;
        }
    }
?>

get__PATH_INFO()次に、別のファイルで関数を呼び出します。

$path_info = App::get__PATH_INFO($_SERVER['REQUEST_URI']);
于 2015-08-30T02:59:56.443 に答える
-1

URL をhttp://localhost/として呼び出している場合、 $_SERVER['PATH_INFO'] は使用できません。

このスクリプトをサーバーにアップロードしてその名前で呼び出すと、この同じ変数が自動的に使用可能になります。

于 2015-11-26T18:11:27.637 に答える