php中绝对路径和相对路径的关系分析
php似乎不能像asp那样用“/”来表示根目录,用$_SERVER['DOCUMENT_ROOT']来代替。其他的东西都是一样的:/表示下一级。/表示当前层。如果a/b/c/s.php想调用根目录下的/bb/s2.txt,那么:$ rootdir=$ _ server[' document _ root '];$ FireDir=' $ rooDir/bb/s 2 . txt ';或: "./././bb/s2.txt”意味着向上回到b,然后向上到a,然后向上到根目录,然后向下到bb。前一阵子,我一直被在php开发中引入require()的文件之间的相对位置关系所困扰。为了彻底了解他们的关系,作者做了一个实验。以下为实验图片:。
当前项目(project2)的绝对路径是d : \ www \ PHP _ case \ coucom _ make。也就是我们当前项目的根目录。为了更清晰地描述不同层级目录文件的相互介绍,我大胆地将引用分为三种:上级对下级的引用(简称上级引用,英文翻译为上级对理解)。被称为(stou))。从较低层次到较高层次的指称(在英语中称为“较低层次指称”,反之亦然)是同一层次的指称或同一层次的指称(在英语中并列)。好了,我们已经定义了引用类型。现在,让我们看看不同类型引用它们的规则。再来说说上级的参考:看我们的实验图,图中项目下有aa bb ee的三个同级目录和一个index.php文件,bb下有cc的另一个目录,cc下有dd的另一个目录和cc.php ccc.php的两个文件,dd下也有dd.php的一个文件。
从上级到下级的所有引用都属于上级。例如,index.php对所有文档的引用。php引用了ee.php,ee.php引用了ee.php。仔细看目录结构,你会发现这三个引用虽然属于较高级别的引用,但并不完全相同。我把它分为两种情况:即上级参考文献中有两种参考文献:1。下级上级引用(如cc.php对cc.php的引用,因为这两个文件属于cc目录)2。非从属上级引用(如index.php对所有文件的引用和ee.php对ee.php的引用,属于这种情况,因为它们与被引用的文件没有公共的父目录。它可以相对于站点的根目录)。下级上级参考:以下为cc.php dd.php参考(' DD/DD . PHP ');非下属上级参考:以下为ee.php cc.php参考('./bb/cc/cc . PHP’;以上是上级参考。来看看下属的参考吧!同样,从下级到上级的所有引用都属于下级引用,下级引用也分为下级和非下级。下级下级引用的相对路径以其父目录为根目录。例如,Ttt.php对bbff.php的引用就属于这种情况:require('./bb/cc/cc . PHP’;非从属从属引用基于网站根目录,例如:ccc.php对ee.php的引用:require('././ee/ee . PHP ');以上是低级参考的介绍。最后再来看看同级参考或者同行参考。事实上,同伴参照也分为两种情况:从属同伴参照和非从属同伴参照。下属对等引用很简单:即引用同一个目录下的两个文件,例如:引用ttt.php的ttt.php require(' TTT . PHP ');非从属同级引用:即不在同一个目录(没有共同的父目录,只有网站目的地是父目录)但级别相同的两个文件的引用,例如ee.php aa.php要求('./ee/ee . PHP’)正在被引用;以上三类引用不同,也有嵌套引用,如:ff.php引用dd.php,dd.php引用gf.php。在这种情况下,dd.php最初引用gf.php作为下级参考文献中的非从属参考文献,行文如下:require('././ee/gf . PHP ');但是ff.php对ff.php的引用属于上级引用中的下级引用,其写法如下:require('。/cc/DD/DD . PHP ';但是你会发现在ff.php找不到gf.php的档案,那么怎么写呢?我告诉过你应该用dd.php写这个:require('./ee/gf . PHP ');这是正确书写的唯一方法。为什么呢?因为当涉及嵌套引用时,被引用文件的相对路径应该以最终被引用文件为准!简而言之:其实很简单,你用你的web根目录作为根目录。不管你怎么决定,你的文件中一定要有一个应该包含在全部中的文件,比如有些文件比较global.php,有些文件比较common.php。如果这个文件放在根目录wwwroot/global.php的第一行,就要添加一个chdir(dirname(_ _ FILE _ _);//要切换到global.php所在的目录,请使用“要求”./././global.php '与目录中的其他文件一起使用;需要' aa/aa . PHP ';需要' bb/bb/cc . PHP ';就是这样,因为你的global.php已经把路径切换到了wwwroot,所以你不用像很多人一样费心定义(' root _ path ',dirname(_ _ file _ _));需要ROOT_PATH.chdir(dir name(_ _ FILE _ _));真的很好。介绍了该文件的相对位置。其他导入的文件只需要基于他。
版权声明:php中绝对路径和相对路径的关系分析是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。