绝对路径和相对路径总结

时间:2022-11-27 17:46:43

虽然入门的时候第一个接触的概念就是绝对路径和相对路径,但是在使用的时侯,仍然会出现很多的问题,今天就把以往会犯的错误做一个总结。

一、绝对路径
概念:是从盘符开始的路径,形如C:\windows\system32\cmd.exeWindows 系统),LINUX系统中 绝对路径 以“/”为起始 例:/home/user1/abc1.txt
在网络中,以http开头的链接都是绝对路径,绝对路径就是你的主页上的文件或目录在硬盘上真正的路径,绝对路径一般在CGI程序的路径配置中经常用到,而在制作网页中实际很少用到。
二、相对路径
概念:指相对于该文件本身的其他文件的位置
以下为建立路径所使用的几个特殊符号,及其所代表的意义。(qq文件的位置:E:/wamp/www/xm/home1/qq.php)
"./":代表目前所在的目录。例:./user1/abc1.php  也可简写成:user1/abc1.php
"../":代表上一层目录。例:../home2/user2/abc2.php
以"/"开头:代表根目录。例:/xm/home2/user2/abc2.php
一般来讲讲在一个文件中引入另一个文件或图片,那么导入另一文件的路径则是相对于该文件的本身,这里也有两种导入的方法:
1.从该文件的自身位置开始找:../home2/user2/abc2.php
2.从根目录开始找:/xm/home2/user2/abc2.php(推荐使用此方法)


但是也有特殊情况:

1.对于thinkphp这样的单一入口框架来说,不论是其内部哪一个文件要引入另外一个文件,另外这个文件的相对位置都是相对于thinkphp目录下的index.php。

2.对于smarty模板引擎来说,a.php文件引入templates文件夹中的模板a.tpl,a.tpl中引入路径:src="../captcha.php",而captcha.php的位置是相对于a.php的位置。

注:一般css文件中导入背景图片的话,都是相对于css文件的位置。

特殊案例:

/(根目录) -  home1  -  a.php

                                    -  wjj         -  b.php

                    -  home2  -  c.php

a.php:require('wjj/b.php');

b.php:include_once ('../home2/c.php');

注意:b.php文件引入c.php,实际上这个相对路径是c.php相对于a.php的路径。


获取当前文件的路径:

<?php
$path=$_SERVER["PHP_SELF"];
echo"$path";
?>