php 预订义变量,php中与请求路径相关的一些预约义变量的区别

假设访问路径是:php

http://localhost/test.src/test.php/home/user/login/?user=root&pwd=111

一、$_SERVER['SCRIPT_NAME']html

它是从客户端来看、不包含域名的脚本文件路径,即:服务器

/test.src/test.php

若是你想引用脚本自身,例如把一个表单提交给本身处理时,这能够用这个。框架

" method="get">

二、$_SERVER['SCRIPT_FILENAME']优化

与 $_SERVER['SCRIPT_NAME'] 不一样的是,这是代码运行时脚本文件在服务器端的绝对路径, 即:url

c:/wamp/www/test.src/test.php

说得通俗一点,这就是文件在服务器硬盘上的路径。code

三、$_SERVER['PHP_SELF']orm

与$_SERVER['SCRIPT_NAME']相似,但它还包括了后面第一个问号以前的部分,即:htm

/test.src/test.php/home/user/login/

四、$_SERVER['PATH_INFO']get

它是$_SERVER['SCRIPT_NAME']以后、第一个问号以前的内容,即:

/home/user/login/

它常常用来作为传参载体,被不少系统用来优化url路径格式,最著名的如THINKPHP框架。

可是这个变量不必定会有值,也可能不存在。

/*下面的连接形式不会有PATH_INFO变量*/

http://localhost:83/test.php/index.php

http://localhost:83/test.php/

/*下面的连接形式有PATH_INFO变量,但值为符'/'  */

http://localhost:83/test.php/index.php/

http://localhost:83/test.php/index.php/?a=b$c=d

/*综上得出只要脚本文件名后下一个字符为'/',就会有变量PATH_INFO */

php.ini中的配置参数cgi.fix_pathinfo是用来对设置cgi模式下为php是否提供绝对路径信息或PATH_INFO信息。没有这个参数以前PHP设置绝对路径PATH_TRANSLATED的值为SCRIPT_FILENAME,没有PATH_INFO值。设置这个参数为cgi.fix_pathinfo=1后,cgi设置完整的路径信息PATH_TRANSLATED的值为SCRIPT_FILENAME,而且设置PATH_INFO信息;若是设为cgi.fix_pathinfo=0则只设置绝对路径PATH_TRANSLATED的值为SCRIPT_FILENAME。cgi.fix_pathinfo的默认值是1。

五、$_SERVER['QUERY_STRING']

它是第一个问号之后的内容,即:

user=root&pwd=111

六、__FILE__

__FILE__是代码定义时的脚本文件自己的绝对路径。它与$_SERVER['SCRIPT_FILENAME']有点不一样,下面看一个实例。假设a.php包含了b.php。

// 如下是test/a.php脚本中的内容:

那 么在b.php中,$_SERVER['SCRIPT_FILENAME']可能会是 /home/a88888888/public_html /test/a.php。虽然$_SERVER['SCRIPT_FILENAME']是在b.php内,但b.php是在a.php内运行的,所以获得 的是a.php的路径。而在b.php中,__FILE__可能会是 /home/a88888888/public_html/test/b.php, 这是__FILE__所处的真正位置。

七、basename()获取文件名,dirname()获取目录名,dirname($dir). '/' .basename($dir)就是指定文件在服务器端的完整路径

八、getcwd()获取当前脚本文件所在的服务器端目录路径,返回结果先后都不会有斜杠

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值