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与paypal整合方法
Nov 28 PHP
php获取服务器信息的实现代码
Feb 04 PHP
在win7中搭建Linux+PHP 开发环境
Oct 08 PHP
PHP魔术方法__GET、__SET使用实例
Nov 25 PHP
php查找字符串出现次数的方法
Dec 01 PHP
php实现encode64编码类实例
Mar 24 PHP
如何用PHP来实现一个动态Web服务器
Jul 29 PHP
PHP去掉json字符串中的反斜杠\及去掉双引号前的反斜杠
Sep 30 PHP
PHP常见字符串处理函数用法示例【转换,转义,截取,比较,查找,反转,切割】
Dec 24 PHP
PHPExcel中文帮助手册|PHPExcel使用方法(分享)
Jun 09 PHP
PHP结合Vue实现滚动底部加载效果
Dec 17 PHP
PHP校验15位和18位身份证号的类封装
Nov 07 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
Win下如何安装PHP的APC拓展
2013/08/07 PHP
php无限遍历目录示例
2014/02/21 PHP
PHP输出英文时间日期的安全方法(RFC 1123格式)
2014/06/13 PHP
调用WordPress函数统计文章访问量及PHP原生计数器的实现
2016/03/21 PHP
php格式化时间戳
2016/12/17 PHP
php封装db类连接sqlite3数据库的方法实例
2017/12/19 PHP
PHP使用正则表达式实现过滤非法字符串功能示例
2018/06/04 PHP
js 页面输出值
2008/11/30 Javascript
浅析jQuery的链式调用之each函数
2010/12/03 Javascript
表头固定(利用jquery实现原理介绍)
2012/11/08 Javascript
js 实现日期灵活格式化的小例子
2013/07/14 Javascript
浮动的div自适应居中显示的js代码
2013/12/23 Javascript
js中回调函数的学习笔记
2014/07/31 Javascript
简介JavaScript中的italics()方法的使用
2015/06/08 Javascript
JavaScript简单获取系统当前时间完整示例
2016/08/02 Javascript
Highcharts入门之简介
2016/08/02 Javascript
js事件源window.event.srcElement兼容性写法(详解)
2016/11/25 Javascript
Vue filter介绍及其使用详解
2017/10/21 Javascript
微信小程序实现的涂鸦功能示例【附源码下载】
2018/01/12 Javascript
解决Vue 移动端点击出现300毫秒延迟的问题
2020/07/21 Javascript
vue 导航守卫和axios拦截器有哪些区别
2020/12/19 Vue.js
[02:12]DOTA2英雄基础教程 变体精灵
2013/12/16 DOTA
python实现监控某个服务 服务崩溃即发送邮件报告
2018/06/21 Python
浅谈python脚本设置运行参数的方法
2018/12/03 Python
python原类、类的创建过程与方法详解
2019/07/19 Python
详解Python3迁移接口变化采坑记
2019/10/11 Python
python自动化实现登录获取图片验证码功能
2019/11/20 Python
测试驱动开发的主要步骤是什么
2014/12/10 面试题
银行实习人员自我鉴定
2013/09/22 职场文书
找工作最新求职信
2013/12/22 职场文书
政府采购方案
2014/06/12 职场文书
护理学专业求职信
2014/06/29 职场文书
幽默自我介绍演讲稿
2014/08/21 职场文书
领导干部作风整顿个人剖析材料
2014/10/11 职场文书
2016医师资格考试考生诚信考试承诺书
2016/03/25 职场文书
Python实现文字pdf转换图片pdf效果
2022/04/03 Python