服務(wù)項目:網(wǎng)站建設(shè)、仿站、程序開發(fā)、APP開發(fā)設(shè)計、移動網(wǎng)站開發(fā)設(shè)計、企業(yè)網(wǎng)站設(shè)計、電子商務(wù)網(wǎng)站開發(fā)、網(wǎng)站維護(hù)、網(wǎng)站推廣、UX/UI 、HTML5、CSS3、JS / Jquery ...
          四川浚浚科技有限公司
          四川浚浚科技有限公司 (開發(fā)設(shè)計官網(wǎng))TEL : 15308000360 / QQ : 38585404
          深入挖掘用戶需求
          成就品質(zhì)用戶體驗

          您的位置:首頁 > 技術(shù)經(jīng)驗 > 編程開發(fā) > 正文

          php絕對路徑與相對路徑詳解完整版
          技術(shù)支持服務(wù)電話:15308000360 【7x24提供運維服務(wù),解決各類系統(tǒng)/軟硬件疑難技術(shù)問題】

          在php中好像不能像asp那樣用“/”表示根目錄,代之以$_SERVER['DOCUMENT_ROOT'],其它則相同:../表示向上一層。./表示當(dāng)前層。假如現(xiàn)在a/b/c/s.php要調(diào)用根目錄下的 /bb/s2.txt,則:

          $RootDir = $_SERVER['DOCUMENT_ROOT'];
          $fireDir = “$RootDir/bb/s2.txt”;

          或者:“../../../bb/s2.txt”表示向上返回到b再向上到a再向上到根目錄然后到bb下。

          前一陣子老是受php開發(fā)中,文件互相引入require()相對位置關(guān)系的困擾,為了徹底弄清它們的關(guān)系,筆者做了個實驗。

          以下是實驗圖:

          當(dāng)前項目(project2)的絕對路徑是:D:\www\php_case\Coucom_make。也就是我們當(dāng)前項目的根目錄root.

          為了能更加清楚的表述不同級別的目錄文件相互的引入問題,偶大膽將引用分成三種類型即:上級對下級的引用(簡稱上級引用,英文譯為:superior to underling。簡稱(stou)).

          下級對上級的引用(簡稱下級引用,英文反之便是)

          平級引用或叫同級引用(英文:paratactic)。

          好了,我們明確了引用類型,下面我們來看不同類型引用它們有著什么樣的規(guī)則。

          我們先來說說上級引用:

          看我們的實驗圖,在圖中項目下分別有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的引用:

           大家仔細(xì)看一下目錄結(jié)構(gòu),便會發(fā)現(xiàn)這三種引用雖然同屬于上級引用,但它們又不完全相同,我把它分成兩種情況:即在上級引用中存在兩種引用情況: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’);

          非從屬的下級引用卻是以網(wǎng)站的根目錄為準(zhǔn)的,例如:

          ccc.php對ee.php的引用: require(‘../../ee/ee.php’);

          以上是下級引用的介紹,最后我們來看一下平級引用或者叫同級引用,其實同級引用也是分為這兩種情況:從屬同級引與非從屬同級引用

          從屬同級引用很簡單:即在同一個目錄下的兩個文件的引用

          例如:在dd.php中引用ttt.php require(‘ttt.php’);

          非從屬同級引用:即不在同一個目錄下(沒有共同的父目錄,只有以網(wǎng)站目站為父目錄的情況),但是級別是相同的兩個文件的引用,例如: 在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’); 可是你會發(fā)現(xiàn)在ff.php中無法找到gf.php文件,那該如何寫呢?我告訴你應(yīng)該在dd.php中這樣寫:require(‘../ee/gf.php’);只有這樣寫就正確了,為什么呢?因為在涉及到嵌套引用的時候被引用文件的相對路徑要以最終的引用文件為準(zhǔn)!

          簡而言之:

          其實很簡單的,你用你的web根目錄做根目錄.不管你怎么定,你文件肯定有一個全部都要包含的文件的,比如有的較global.php,有的較common.php

          假如這個文件放再根目錄

          wwwroot/global.php

           里面第一行你加個chdir(dirname(__FILE__)); //切換到global.php所在目錄就是跟目錄

          其他文件使用

          require “../../../global.php”;
          require “aa/aa.php”;
          require “bb/bb/cc.php”;

           這樣就行了,因為你的global.php已經(jīng)把路徑切換到wwwroot了,你不用像很多人那么麻煩

          define(‘ROOT_PATH’,dirname(__FILE__));
          require ROOT_PATH…..

           chdir(dirname(__FILE__)); 的確很好使,相對位置引入這個文件其他引入文件只要以他為基準(zhǔn)就好了。



          上一篇:PHP使用命令行函數(shù)詳解
          下一篇:php面向?qū)ο骭_get(),__set()的用法

          相關(guān)熱詞搜索:php
          主站蜘蛛池模板: 欧美三级日韩三级| 综合久久给合久久狠狠狠97色| 欧美视频在线免费| 国产乱子伦精品无码码专区| 中文字幕亚洲一区二区三区| 精品伊人久久大香线蕉网站| 国产精品jlzz视频| selaoban在线视频免费精品| 欧美另类videos黑人极品| 国产免费一区二区三区不卡| 97久久精品人妻人人搡人人玩| 拍拍拍无挡免费视频网站| 亚洲人在线视频| 狠狠精品干练久久久无码中文字幕 | _妓院_一钑片_免看黄大片| 欧美日本一道高清免费3区| 另类一区二区三区| 狠狠色伊人亚洲综合网站色| 大竹一重足舐男未删减版| 亚洲一级免费视频| 色综合天天综合| 国产精品久久久久久久久kt| h视频在线免费| 最近免费中文字幕视频高清在线看 | 国产人成777在线视频直播| 2019天堂精品视频在线观看| 日本高清一二三| 亚洲成a人片在线看| 粗大挺进尤物人妻中文字幕| 国产亚洲美女精品久久久久| xxxx日本在线| 在线观看91精品国产不卡免费| 么公的又大又深又硬视频| 污网站在线免费观看| 国产成人av在线影院| 91制片厂在线播放| 好男人日本社区www| 丽娟女王25部分| 欧美日本一道高清免费3区| 免费人成在线观看网站品爱网| 色婷婷亚洲十月十月色天|