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 相关文章推荐
一个查看session内容的函数
Oct 09 PHP
BBS(php & mysql)完整版(二)
Oct 09 PHP
Access数据库导入Mysql的方法之一
Oct 09 PHP
php开发过程中关于继承的使用方法分享
Jun 17 PHP
解析php中mysql_connect与mysql_pconncet的区别详解
May 15 PHP
php命名空间学习详解
Feb 27 PHP
PHP把数字转成人民币大写的函数分享
Jun 30 PHP
作为程序员必知的16个最佳PHP库
Dec 09 PHP
PHP图像裁剪缩略裁切类源码及使用方法
Jan 07 PHP
Redis构建分布式锁
Mar 28 PHP
PHP实现的数组和XML文件相互转换功能示例
Mar 15 PHP
php设计模式之正面模式实例分析【星际争霸游戏案例】
Mar 24 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
PHP+SQL 注入攻击的技术实现以及预防办法
2011/01/27 PHP
无法在发生错误时创建会话,请检查 PHP 或网站服务器日志,并正确配置 PHP 安装(win+linux)
2012/05/05 PHP
浅谈PHP变量作用域以及地址引用问题
2013/12/27 PHP
ioncube_loader_win_5.2.dll的错误解决方法
2015/01/04 PHP
PHP快速生成各种信息提示框的方法
2016/02/03 PHP
php将字符串转换为数组实例讲解
2020/05/05 PHP
Javascript 跨域访问解决方案
2009/02/14 Javascript
JavaScript控制Session操作方法
2013/01/17 Javascript
Javascript获取HTML静态页面参数传递值示例
2013/08/18 Javascript
javascript date格式化示例
2013/09/25 Javascript
JS按字节截取字符长度实例
2013/11/20 Javascript
使用js写的一个简易的投票
2013/11/27 Javascript
在JavaScript中判断整型的N种方法示例介绍
2014/06/18 Javascript
Three.js学习之几何形状
2016/08/01 Javascript
微信小程序调用PHP后台接口 解析纯html文本
2017/06/13 Javascript
浅谈js中的this问题
2017/08/31 Javascript
Vue element-ui父组件控制子组件的表单校验操作
2020/07/17 Javascript
[47:04]EG vs RNG 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/18 DOTA
python解析发往本机的数据包示例 (解析数据包)
2014/01/16 Python
Python中实现远程调用(RPC、RMI)简单例子
2014/04/28 Python
给Python中的MySQLdb模块添加超时功能的教程
2015/05/05 Python
自学python的建议和周期预算
2019/01/30 Python
快速解决pyqt5窗体关闭后子线程不同时退出的问题
2019/06/19 Python
150行python代码实现贪吃蛇游戏
2020/04/24 Python
Python新手学习函数默认参数设置
2020/06/03 Python
python collections模块的使用
2020/10/16 Python
python中Mako库实例用法
2020/12/31 Python
Nayomi官网:沙特阿拉伯王国睡衣和内衣品牌
2020/12/19 全球购物
介绍一下linux文件系统分配策略
2013/02/25 面试题
安全资金保障制度
2014/01/23 职场文书
献爱心活动总结
2014/05/07 职场文书
年终考核实施方案
2014/05/26 职场文书
厕所文明标语
2014/06/11 职场文书
收银员岗位职责范本
2015/04/07 职场文书
小学中队活动总结
2015/05/11 职场文书
使用python绘制分组对比柱状图
2022/04/21 Python