PHP中多个文件包含的问题 (一)
使用require或者include来包含文件时,包含的文件的内容相对性,这个很容易搞混,所以记录一下。
这个相对性包括
__DIR__,__FILE__,$_SERVER['PHP_SELF'],$_SERVER['SCRIPT_NAME']
比如看下面的例子:
- test/
- dir1
- a.php
- dir2
- b.php
- index.php
- dir1
文件层级结构如上:

访问dir2/b.php,输入内容如下:
aaaaaa
dir: /Library/WebServer/Documents/test/dir1
file: /Library/WebServer/Documents/test/dir1/a.php
php_self: /test/dir2/b.php
script_name: /test/dir2/b.php
aaaaaaa bbbbbbb
dir: /Library/WebServer/Documents/test/dir2
file: /Library/WebServer/Documents/test/dir2/b.php
php_self: /test/dir2/b.php
script_name: /test/dir2/b.php
bbbbbbb
从上面的例子中可以得出下面的结论:
1、无论A文件是否被包含进其他文件中,在该A文件中的__DIR__始终是该A文件真实的所在目录名,只要文件的位置不变,__DIR__值就不会改变,不会变成包含他的那个文件,即使执行的是包含他的那个文件。
2、无论A文件是否被包含进其他文件中,在该A文件中的__FILE__始终是该A文件真实的所在文件名,只要文件名不变,__FILE__值就不会改变,不会变成包含他的那个文件,即使执行的是包含他的那个文件。
3、$SERVER全局数组中的PHP_SELF和SCRIPT_NAME的值始终是直接运行的那个文件名,即你访问的哪个文件,这两个变量的值就是那个文件名,不会是包含的某个文件名。
PHP中多个文件包含的问题 (一)的更多相关文章
- VC++中的头文件包含问题
在一些大的工程中,可能会包含几十个基础类,免不了之间会互相引用(不满足继承关系,而是组合关系).也就是需要互相声明.好了,这时候会带来一些混乱.如果处理得不好,会搞得一团糟,根据我的经验,简单谈谈自已 ...
- PHP中多个文件包含的问题 (二)
首先php中有常用的两种方法将文件包含:include和require,而include_once和require_once无非就是升级版而已,这里就不阐述他们的区别,我只提一下我遇到的问题: 先看一 ...
- 利用PHP应用程序中的远程文件包含(RFI)并绕过远程URL包含限制
来源:http://www.mannulinux.org/2019/05/exploiting-rfi-in-php-bypass-remote-url-inclusion-restriction.h ...
- PHP文件包含漏洞攻防实战(allow_url_fopen、open_basedir)
摘要 PHP是一种非常流行的Web开发语言,互联网上的许多Web应用都是利用PHP开发的.而在利用PHP开发的Web应用中,PHP文件包含漏洞是一种常见的漏洞.利用PHP文件包含漏洞入侵网站也是主流的 ...
- Windows 驱动程序工具包中的头文件
MSDN原文:https://msdn.microsoft.com/zh-cn/library/windows/hardware/ff554695(v=vs.85).aspx Windows 驱动程序 ...
- phpmyadmin任意文件包含漏洞分析(含演示)
0x01 漏洞描述 phpmyadmin是一款应用非常广泛的mysql数据库管理软件,基于PHP开发. 最新的CVE-2014-8959公告中,提到该程序多个版本存在任意文件包含漏洞,影响版本如下: ...
- Nagios Looking Glass 本地文件包含漏洞
漏洞名称: Nagios Looking Glass 本地文件包含漏洞 CNNVD编号: CNNVD-201310-682 发布时间: 2013-10-31 更新时间: 2013-10-31 危害等级 ...
- PTPX中的activity文件以及mapping文件
在不同的simulation中的capturing switching activity: SAIF:Switching Activity Interface Format,包含toggle coun ...
- WP e-Commerce WordPress Payment Gateways Caller插件本地文件包含漏洞
漏洞名称: WP e-Commerce WordPress Payment Gateways Caller插件本地文件包含漏洞 CNNVD编号: CNNVD-201310-642 发布时间: 2013 ...
随机推荐
- 百度地图在web中的使用(一)
百度地图在web中的使用(js) 背景:在公司做一个地理位置的自定义字段,需要用到地图来获取经纬度和地址,在这选择了百度地图 准备工作 注册百度地图开发者,创建应用获取key http://lbsyu ...
- March 07th, 2018 Week 10th Wednesday
Better later than never. 亡羊补牢,时犹未晚. Time and again all of us are told to complete the tasks assigned ...
- Java同步(Synchronization)
前言 线程间的通信主要通过共享对字段的访问和对象引用字段的引用,可能会产生两种错误,线程干扰和内存一致性错误.Java的同步就是防止这些错误,但当多个线程访问同一资源会导致线程执行缓慢,甚至暂停执行. ...
- SecureCRT窗口输出代码关键字高亮设置
设置方法: 下载配置文件:本站下载:Highlights.css (下载重命名为 Highlights.ini ) 原站下载:http://download.feralpacket.org/La ...
- 【Teradata Utility】系统工具使用
List two ways in which a system utility can be started. Explain how to use the following utilities t ...
- Teradata超长数据会截断
1.数据库版本 Teradata 15.10 2.测试案例: create multiset table test_stg ( col1 ) CHARACTER SET LATIN not null ...
- UVA10410-Tree Reconstruction(BFS序和DFS序的性质)
Problem UVA10410-Tree Reconstruction Accept:708 Submit:4330 Time Limit: 3000 mSec Problem Descripti ...
- Python *args 和 **kwargs用法
*args的参数形式把剩下的没有关键字的参数收起来形成一个tuple,*kwargs把有关键字的收起来做成一个字典 def this_fun(a,b,*args,**kwargs): print a ...
- [Git] Git操作命令
基础操作 git配置 git config --global user.name "Your Name" git config --global user.email " ...
- day03-课堂笔记-大纲
字典: # 字典循环: dic.keys() | dic.values() | dic.items()for k, v in dic.items(): print(k, v) # ...