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 intval的测试代码发现问题
Jul 27 PHP
Ajax+PHP 边学边练 之二 实例
Nov 24 PHP
php 读取文件乱码问题
Feb 20 PHP
php入门之连接mysql数据库的一个类
Apr 21 PHP
Yii配置文件用法详解
Dec 04 PHP
php使用fputcsv()函数csv文件读写数据的方法
Jan 06 PHP
php 从一个数组中随机的取出若干个不同的数实例
Dec 31 PHP
thinkPHP5.0框架应用请求生命周期分析
Mar 25 PHP
thinkphp 抓取网站的内容并且保存到本地的实例详解
Aug 25 PHP
Yii2.0实现生成二维码功能实例
Oct 24 PHP
laravel添加前台跳转成功页面示例
Oct 22 PHP
PHP7修改的函数
Mar 09 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
深入理解:XML与对象的序列化与反序列化
2013/06/08 PHP
php旋转图片90度的方法
2013/11/07 PHP
非常漂亮的JS代码经典广告
2007/10/21 Javascript
Riot.js 快速的JavaScript单元测试框架
2009/11/09 Javascript
jQuery Flash/MP3/Video多媒体插件
2010/01/18 Javascript
jQuery EasyUI API 中文文档 - DataGrid数据表格
2011/11/17 Javascript
jquery1.83 之前所有与异步列队相关的模块详细介绍
2012/11/13 Javascript
JQuery操作三大控件(下拉,单选,复选)的方法
2013/08/06 Javascript
Firefox下无法正常显示年份的解决方法
2014/09/04 Javascript
js如何改变文章的字体大小
2016/01/08 Javascript
javascript多物体运动实现方法分析
2016/01/08 Javascript
jQuery简单实现列表隐藏和显示效果示例
2016/09/12 Javascript
微信小程序实战之运维小项目
2017/01/17 Javascript
vue实现多条件和模糊搜索功能
2019/05/28 Javascript
JS常见面试试题总结【去重、遍历、闭包、继承等】
2019/08/27 Javascript
Vue开发中遇到的跨域问题及解决方法
2020/02/11 Javascript
通过实例解析JavaScript常用排序算法
2020/09/02 Javascript
Python实现的百度站长自动URL提交小工具
2014/06/27 Python
Python 抓取动态网页内容方案详解
2014/12/25 Python
Python利用Nagios增加微信报警通知的功能
2016/02/18 Python
Python中sort和sorted函数代码解析
2018/01/25 Python
python 3.6.4 安装配置方法图文教程
2018/09/18 Python
使用Python将Mysql的查询数据导出到文件的方法
2019/02/25 Python
python实现杨氏矩阵查找
2019/03/02 Python
纯CSS3制作页面切换效果的实例代码
2019/05/30 HTML / CSS
整理HTML5中表单的常用属性及新属性
2016/02/19 HTML / CSS
微信小程序之html5 canvas绘图并保存到系统相册
2019/06/20 HTML / CSS
RIP版本1跟版本2的区别
2013/12/30 面试题
服务员岗位责任制
2014/02/11 职场文书
优秀毕业自我鉴定
2014/02/15 职场文书
校园广播稿100字
2014/10/06 职场文书
2015年社区科普工作总结
2015/05/13 职场文书
欠条范文
2015/07/03 职场文书
保护动物的宣传语
2015/07/13 职场文书
家长对孩子的寒假评语
2015/10/09 职场文书
Python利用Turtle绘制哆啦A梦和小猪佩奇
2022/04/04 Python