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 相关文章推荐
解决dede生成静态页和动态页转换的一些问题,及火车采集入库生成动态的办法
Mar 29 PHP
js下函数般调用正则的方法附代码
Jun 22 PHP
字母顺序颠倒而单词顺序不变的php代码
Aug 08 PHP
php短域名转换为实际域名函数
Jan 17 PHP
PHP实现多进程并行操作的详解(可做守护进程)
Jun 18 PHP
PHP中ltrim与rtrim去除左右空格及特殊字符实例
Jan 07 PHP
php metaphone()函数的定义和用法
May 15 PHP
PHP GD库相关图像生成和处理函数小结
Sep 30 PHP
PHP文件系统管理(实例讲解)
Sep 19 PHP
thinkphp5框架实现数据库读取的数据转换成json格式示例
Oct 10 PHP
PHP实现二维数组(或多维数组)转换成一维数组的常见方法总结
Dec 04 PHP
PHP并发场景的三种解决方案代码实例
Feb 27 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
解决dede生成静态页和动态页转换的一些问题,及火车采集入库生成动态的办法
2007/03/29 PHP
PHP安全配置详细说明
2011/09/26 PHP
php写的AES加密解密类分享
2014/06/20 PHP
CodeIgniter框架URL路由总结
2014/09/03 PHP
php实现RSA加密类实例
2015/03/26 PHP
解读PHP中的垃圾回收机制
2015/08/10 PHP
php短信接口代码
2016/05/13 PHP
php读取本地json文件的实例
2018/03/07 PHP
javascript入门·图片对象(无刷新变换图片)\滚动图像
2007/10/01 Javascript
复制本贴标题和地址的js代码
2008/07/01 Javascript
javascript 时间比较实现代码
2009/10/28 Javascript
extjs grid设置某列背景颜色和字体颜色的方法
2010/09/03 Javascript
最短的IE判断var ie=!-[1,]分析
2014/05/28 Javascript
JavaScript实现继承的4种方法总结
2014/10/16 Javascript
jquery验证邮箱格式并显示提交按钮
2015/11/07 Javascript
JavaScript数据结构与算法之链表
2016/01/29 Javascript
拥有一个属于自己的javascript表单验证插件
2016/03/24 Javascript
js闭包引起的事件注册问题介绍
2016/03/29 Javascript
值得分享的JavaScript实现图片轮播组件
2016/11/21 Javascript
jQuery中过滤器的基本用法示例
2017/10/11 jQuery
jQuery实现点击自身以外区域关闭弹出层功能完整示例【改进版】
2018/07/31 jQuery
vue如何获取自定义元素属性参数值的方法
2019/05/14 Javascript
简单了解vue.js数组的常用操作
2019/06/17 Javascript
Vue中使用wangeditor富文本编辑的问题
2021/02/07 Vue.js
javascript实现固定侧边栏
2021/02/09 Javascript
Python实现识别手写数字大纲
2018/01/29 Python
Python WEB应用部署的实现方法
2019/01/02 Python
Python日志无延迟实时写入的示例
2019/07/11 Python
pandas数据选取:df[] df.loc[] df.iloc[] df.ix[] df.at[] df.iat[]
2020/04/24 Python
Pyinstaller 打包发布经验总结
2020/06/02 Python
15个应该掌握的Jupyter Notebook使用技巧(小结)
2020/09/23 Python
Python实现冒泡排序算法的完整实例
2020/11/04 Python
芬兰攀岩、山地运动和户外活动用品购物网站:Bergfreunde
2016/10/06 全球购物
魅力教师事迹材料
2014/01/10 职场文书
高三英语教学反思
2016/03/03 职场文书
Golang原生rpc(rpc服务端源码解读)
2022/04/07 Golang