+ -
当前位置:首页 → 问答吧 → 关于php绝对路径与相对路径之间关系的的深入研究

关于php绝对路径与相对路径之间关系的的深入研究

时间:2010-01-16

来源:互联网

关于php绝对路径与相对路径之间关系的的深入研究

                                                      关于php绝对路径与相对路径之间关系的的深入研究
前一阵子老是受php开发中,文件互相引入require()相对位置关系的困扰,使偶大为肝火!
于是乎偶决定对其宣战,彻底弄清它们的关系!
以下是俺的实验图:

=700) window.open('http://bbs.phpchina.com/attachments/month_0804/20080425_baecf299d23be9f3890fjNre5IzHgjHX.jpg');" onload="if(this.offsetWidth>'700')this.width='700';if(this.offsetHeight>'700')this.height='700';" >
ddd.jpg

当前项目(project2)的绝对路径是:D:\www\php_case\Coucom_make。也就是我们当前项目的根目录root.
  
为了能更加清楚的表述不同级别的目录文件相互的引入问题,偶大胆将引用分成三种类型即:上级对下级的引用(简称上级引用,英文译为:superior to underling。简称(stou)).
    下级对上级的引用(简称下级引用,英文反之便是)
  平级引用或叫同级引用(英文:paratactic)。   
好了,我们明确了引用类型,下面我们来看不同类型引用它们有着什么样的规则。
我们先来说说上级引用:
看我们的实验图,在图中项目下分别有aa bb ee 三个同级目录和一个index.php文件,在bb下又有cc目录,cc下又有dd目录和cc.php ccc.php两个文件,同样dd下也包含一个dd.php文件。凡是上层对下层均属上级引用.
例如:index.php对于所有文件的引用:
   cc .php对dd.php的引用:
   ee.php对dd.php的引用:
大家仔细看一下目录结构,便会发现这三种引用虽然同属于上级引用,但它们又不完全相同,我把它分成两种情况:即在上级引用中存在两种引用情况:1.从属的上级引用(类如cc.php对dd.php,,因为这两个文件同属于cc目录)2.非从属的上级引用(类如index.php对于所有文件的引用和ee.php对dd.php的引用都属于这种情况因为它们与被引用的文件并没有一个共同的父目录,在能相对于站点根目录).
对于从属上级引用:
以下是在cc.php对dd.php的引用
require('dd/dd.php');
对于非从属上级引用:
以下是在ee.php中对cc.php的引用
require('../bb/cc/cc.php');
以上所说的是上级引用,下面我们来了解一下下级引用!同理下层对上层的引用都属于下级引用,同样分成从属与非从属两类,从属下级引用相对路径以它们的父目录为根目录,例如:
Ttt.php对bbff.php的引用就属于这种情况:require('../bb/cc/cc.php');
非从属的下级引用却是以网站的根目录为准的,例如:
ccc.php对ee.php的引用: require('../../ee/ee.php');
以上是下级引用的介绍,最后我们来看一下平级引用或者叫同级引用,其实同级引用也是分为这两种情况:从属同级引与非从属同级引用
从属同级引用很简单:即在同一个目录下的两个文件的引用
例如:在dd.php中引用ttt.php    require('ttt.php');
非从属同级引用:即不在同一个目录下(没有共同的父目录,只有以网站目站为父目录的情况),但是级别是相同的两个文件的引用,
例如: 在aa.php在引用ee.php  require('../ee/ee.php');

以上是三种类型不同情况下的引用,另外还有涉及到嵌套引用的问题
比如:
ff.php引用dd.php,而dd.php又引用的gf.php,这种情况,本来dd.php引用gf.php属于下级引用中的非从属引用,写法是这样的:require('../../../ee/gf.php');而ff.php引用dd.php属于上级引用中的从属引用,写法是这样的:require('./cc/dd/dd.php'); 可是你会发现在ff.php中无法找到gf.php文件,那该如何写呢?我告诉你应该在dd.php中这样写:require('../ee/gf.php');只有这样写就正确了,为什么呢?因为在涉及到嵌套引用的时候被引用文件的相对路径要以最终的引用文件为准!

作者: php华南培训   发布时间: 2010-01-16

我汗啊。。。

相对是相对,绝对是绝对,是知也。

作者: cain   发布时间: 2010-01-16

超级汗。相对绝对这样的问题还需要用来讨论一番啊。无语。刚接触网页?

作者: jixiaohai   发布时间: 2010-01-16