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递归实现无限分类生成下拉列表的函数
Aug 08 PHP
js限制checkbox勾选的个数以及php获取多个checkbbox的方法深入解析
Jul 18 PHP
php定时执行任务设置详解
Feb 06 PHP
php写入、删除与复制文件的方法
Jun 20 PHP
Linux php 中文乱码的快速解决方法
May 13 PHP
Adnroid 微信内置浏览器清除缓存
Jul 11 PHP
PHP实现微信JS-SDK接口选择相册及拍照并上传的方法
Dec 05 PHP
ThinkPHP 模板substr的截取字符串函数详解
Jan 09 PHP
PHP设计模式之装饰器模式定义与用法详解
Apr 02 PHP
php框架CodeIgniter主从数据库配置方法分析
May 25 PHP
PHP单元测试框架PHPUnit用法详解
Jan 23 PHP
Thinkphp5.0 框架使用模型Model添加、更新、删除数据操作详解
Oct 11 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
apache+php完美解决301重定向的两种方法
2011/06/08 PHP
typecho插件编写教程(三):保存配置
2015/05/28 PHP
DWR Ext 加载数据
2009/03/22 Javascript
js form 验证函数 当前比较流行的错误提示
2009/06/23 Javascript
jquery 新浪网易的评论块制作
2010/07/01 Javascript
JavaScript中的匀速运动和变速(缓冲)运动详细介绍
2012/11/11 Javascript
js简单实现根据身份证号码识别性别年龄生日
2013/11/29 Javascript
JavaScript移除数组内重复元素的方法
2015/03/18 Javascript
javascript实现动态改变层大小的方法
2015/05/14 Javascript
jQuery实现仿百度帖吧头部固定导航效果
2015/08/07 Javascript
wap手机端解决返回上一页的js实例
2016/12/08 Javascript
jQuery中ztree 点击文本框弹出下拉框的实例代码
2017/02/05 Javascript
高效的jQuery代码编写技巧总结
2017/02/22 Javascript
详解vue-meta如何让你更优雅的管理头部标签
2018/01/18 Javascript
json对象及数组键值的深度大小写转换问题详解
2018/03/30 Javascript
ES6基础之解构赋值(destructuring assignment)
2019/02/21 Javascript
深入学习js函数的隐式参数 arguments 和 this
2019/06/24 Javascript
微信小程序class封装http代码实例
2019/08/24 Javascript
layui多图上传实现删除功能的例子
2019/09/23 Javascript
javascrpt密码强度校验函数详解
2020/03/18 Javascript
jQuery实现增删改查
2020/12/22 jQuery
[03:34]2014DOTA2西雅图国际邀请赛 淘汰赛7月15日TOPPLAY
2014/07/15 DOTA
详解Python中的__init__和__new__
2014/03/12 Python
详解Python中的装饰器、闭包和functools的教程
2015/04/02 Python
python3爬取各类天气信息
2018/02/24 Python
Python爬虫实现抓取京东店铺信息及下载图片功能示例
2018/08/07 Python
突破canvas语法限制 让他支持链式语法
2012/12/24 HTML / CSS
西班牙英格列斯百货官网:El Corte Inglés
2016/09/25 全球购物
地理科学专业毕业生求职信
2013/10/15 职场文书
青年文明号创建承诺
2014/03/31 职场文书
国旗下的讲话演讲稿
2014/05/08 职场文书
教育见习报告范文
2014/11/03 职场文书
运动会闭幕词
2015/01/28 职场文书
财务负责人岗位职责
2015/02/03 职场文书
新员工实习期个人工作总结
2015/10/15 职场文书
2015年小学师德师风建设工作总结
2015/10/23 职场文书