php中$_SERVER[PHP_SELF] 和 $_SERVER[SCRIPT_NAME]之间的区别


Posted in PHP onSeptember 05, 2009

“PHP_SELF”
当前正在执行脚本的文件名,与 document root 相关。举例来说,在 URL 地址为 https://3water.com/test.php/foo.bar 的脚本中使用 $_SERVER['PHP_SELF'] 将会得到 /test.php/foo.bar 这个结果。__FILE__ 常量包含当前(例如包含)文件的绝对路径和文件名。

“SCRIPT_NAME”
包含当前脚本的路径。这在页面需要指向自己时非常有用。__FILE__ 包含当前文件的绝对路径和文件名(例如包含文件)。

主要的原因如像:$_SERVER['PHP_SELF'] ? $_SERVER['PHP_SELF'] : $_SERVER['SCRIPT_NAME'];

找到更好的原因是:
今天在Dreamhost上安?一套PHP程序?r???接的地址都??喑鲆??cgi-system?恚??浅绦虻?onfig?K?]有???,查了查?料才??是SCRIPT_NAME和PHP_SELF不同造成的???。
通常在本?C?y? $_SERVER['SCRIPT_NAME'] 跟 $_SERVER['PHP_SELF'] 大概看不出有什?不同,因?榇蟛糠值?HP不是以CGI模式?行的。
但 DreamHost 上的 PHP 是以 CGI 方式?行,二者就有明?不同的差?。
echo $_SERVER['SCRIPT_NAME']; // (/cgi-system/php.cgi)
echo $_SERVER['PHP_SELF']; // (/admin/test.php)

从http://lists.nyphp.org/pipermail/talk/2005-July/015339.html 发现了一个说明。老外说的。

SCRIPT_NAME solves all the problems mentioned
in this thread - it's just the script name, without any extra garbage
that might be tacked on by the user. PHP_SELF explicitly includes that
extra garbage, so solutions in this thread that involve stripping the
garbage off of PHP_SELF to make it safe are really, really missing the
point - just use SCRIPT_NAME instead. Please don't use FORM ACTION=”";
according to the spec, what the browser does with that is undefined, so
even if it works in current browsers, it might not work in future ones

PHP 相关文章推荐
《PHP编程最快明白》第六讲:Mysql数据库操作
Nov 01 PHP
第三章 php操作符与控制结构代码
Dec 30 PHP
php使用imagick模块实现图片缩放、裁剪、压缩示例
Apr 17 PHP
PHP高级编程实例:编写守护进程
Sep 02 PHP
浅谈php正则表达式中的非贪婪模式匹配的使用
Nov 25 PHP
php实现购物车功能(上)
Jul 23 PHP
php中Ioc(控制反转)和Di(依赖注入)
May 07 PHP
windows下的WAMP环境搭建图文教程(推荐)
Jul 27 PHP
CakePHP框架Model关联对象用法分析
Aug 04 PHP
CMSPRESS 10行代码搞定 PHP无限级分类2
Mar 30 PHP
php字符串截取函数mb_substr用法实例分析
Jun 25 PHP
PHP中define() 与 const定义常量的区别详解
Jun 25 PHP
php getsiteurl()函数
Sep 05 #PHP
PHP 内存缓存加速功能memcached安装与用法
Sep 03 #PHP
用PHP读取flv文件的播放时间长度
Sep 03 #PHP
用php将任何格式视频转为flv的代码
Sep 03 #PHP
ajax php 实现写入数据库
Sep 02 #PHP
php 正则表达式小结
Aug 31 #PHP
自动把纯文本转换成Web页面的php代码
Aug 27 #PHP
You might like
超强分页类2.0发布,支持自定义风格,默认4种显示模式
2007/01/02 PHP
PHP Curl出现403错误的解决办法
2014/05/29 PHP
PHP将进程作为守护进程的方法
2015/03/19 PHP
laravel 5.4中实现无限级分类的方法示例
2017/07/27 PHP
学习YUI.Ext 第三天
2007/03/10 Javascript
top.location.href 没有权限 解决方法
2008/08/05 Javascript
利用javascript移动div层-javascript 拖动层
2009/03/22 Javascript
js chrome浏览器判断代码
2010/03/28 Javascript
js批量设置样式的三种方法不推荐使用with
2013/02/25 Javascript
javascript页面加载完执行事件代码
2014/02/11 Javascript
jQuery使用$.get()方法从服务器文件载入数据实例
2015/03/25 Javascript
js ajaxfileupload.js上传报错的解决方法
2016/05/05 Javascript
JS中常用的输出方式(五种)
2016/06/12 Javascript
JS 在数组指定位置插入/删除数据的方法
2017/01/12 Javascript
Three.js基础学习教程
2017/11/16 Javascript
Vue头像处理方案小结
2018/07/26 Javascript
Vue插值、表达式、分隔符、指令知识小结
2018/10/12 Javascript
微信上传视频文件提示(推荐)
2018/11/22 Javascript
Vue搭建后台系统需要注意的问题
2019/11/08 Javascript
微信小程序使用前置摄像头拍照
2020/10/22 Javascript
[50:27]OG vs LGD 2018国际邀请赛淘汰赛BO3 第一场 8.26
2018/08/30 DOTA
使用python绘制人人网好友关系图示例
2014/04/01 Python
Python基础教程之利用期物处理并发
2018/03/29 Python
python spyder中读取txt为图片的方法
2018/04/27 Python
Python常见字典内建函数用法示例
2018/05/14 Python
python利用7z批量解压rar的实现
2019/08/07 Python
opencv python图像梯度实例详解
2020/02/04 Python
浅谈numpy中函数resize与reshape,ravel与flatten的区别
2020/06/18 Python
浅谈TensorFlow中读取图像数据的三种方式
2020/06/30 Python
PyChon中关于Jekins的详细安装(推荐)
2020/12/28 Python
YOINS官网:时尚女装网上购物
2017/03/17 全球购物
C#面试题问题集
2016/04/02 面试题
农业生产宣传标语
2014/10/08 职场文书
接待员岗位职责
2015/02/13 职场文书
nginx之内存池的实现
2022/06/28 Servers
MySQL事务的ACID特性以及并发问题方案
2022/07/15 MySQL