1. 程式人生 > >絕對路徑和相對路徑總結

絕對路徑和相對路徑總結

雖然入門的時候第一個接觸的概念就是絕對路徑和相對路徑,但是在使用的時侯,仍然會出現很多的問題,今天就把以往會犯的錯誤做一個總結。

一、絕對路徑
概念:是從碟符開始的路徑,形如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";
?>