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

假设访问路径是:

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

1、$_SERVER['SCRIPT_NAME']

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

/test.src/test.php

如果你想引用脚本自身,例如把一个表单提交给自己处理时,这可以用这个。

" method="get">

2、$_SERVER['SCRIPT_FILENAME']

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

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

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

3、$_SERVER['PHP_SELF']

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

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

4、$_SERVER['PATH_INFO']

它是$_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。

5、$_SERVER['QUERY_STRING']

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

user=root&pwd=111

6、__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__所处的真正位置。

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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值