php教程 php手册 php中$_SERVER[PATH_INFO]变量使用详解

php中$_SERVER[PATH_INFO]变量使用详解

May 23, 2016 am 08:34 AM
$_server

如果你希望你的php可以使用$_SERVER[PATH_INFO]我们需要让Apache支持pathinfo才可以了,当然大部份apache默认就是支持pathinfo的哦.

最后总结测试环境:

Ubuntu Server 14.04 
PHP Version 5.5.9-1ubuntu4 
Apache/2.4.7 (Ubuntu)
로그인 후 복사

PATH_INFO是服务器状态中的一个参数,通过$_SERVER['PATH_INFO']可以查看内容,$_SERVER数组中除了PATH_INFO外,还有非常多的数据,比如REQUEST_URI包含了更多的信息.

还有容易混淆的概念:pathinfo指的是PHP4(4.0.3)的一个功能,用于返回一个文件的路径信息.

Apache默认支持PATH_INFO功能,网上的很多教程不是需要修改apache的配置文件,就是要修改php的配置文件,其实完全不用修改任何文件,可以采用以下两种方式来验证PATH_INFO功能.

方式一:原生代码测试

在一个全新的系统上,比如新建一个Ubuntu 14.04 Server虚拟机,仅安装OpenSSH和LAMP软件包,在Apache的主路径/var/www/html目录下新建测试文件pathinfo.php,内容为:

假设虚拟机的IP是192.168.1.106,访问http://192.168.1.106/pathinfo.php,会得到一个空白的页面,因为这个URL没有包含PATH_INFO信息.

更换网址测试http://192.168.1.106/pathinfo.php/year/2014/,页面上会显示/year/2014/,说明可以识别PATH_INFO信息.

方法二:用ThinkPHP测试

很多的PHP框架都需要获取PATH_INFO的值,以ThinkPHP为例,基本的步骤是:下载最新的ThinkPHP到/var/www/html/目录,并解压,修改文件的权限为www-data

访问网址http://192.168.1.106/index.php,会自动生成Application下的文件列表,编辑文件Application/Home/Controller/IndexController.class.php,内容为:

<?php 
    namespace HomeController; 
    use ThinkController; 
    class IndexController extends Controller { 
        public function index(){ 
            $this->show(&#39;Hi,All&#39;,&#39;utf-8&#39;); 
        }  
        public function test(){ 
            $this->show(&#39;test&#39;); 
        } 
    }
로그인 후 복사

当访问http://192.168.1.106/index.php的时候,本质上是访问了http://192.168.1.106/index.php/Home/Index/index,如果后面这个长的可以访问,说明PATH_INFO是正常的.

如果存在异常,ThinkPHP可以能报错为无法加载模块/控制器或非法操作,可以通过访问test方法来验证,输入网址http://192.168.1.106/index.php/Home/Index/test测试,页面会正常显示test.

补充:Apache2.2.22开启PathInfo模式支持,在配置文件中加入:

<Files *.php> 
AcceptPathInfo On 
</Files>
로그인 후 복사

这样 Apache 就可以支持针对 php 文件的 PathInfo 了,于是,小柒又充满希望的试了一下,可惜,还是没有成功.

我想,这PathInfo跟URL有关,那会不会是因为Apache服务器没有开启mod_rewrite模块的关系呢?于是,我在Apache的配置文件,Apache安装目录的conf文件夹下的httpd.conf文件,里找到:

#LoadModule rewrite_module modules/mod_rewrite.so

将前面的#去掉,改为:LoadModule rewrite_module modules/mod_rewrite.so

保存,重启服务器后,项目终于可以使用PathInfo模式访问了.


本文链接:

收藏随意^^请保留教程地址.

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)