談?wù)凱HP中相對(duì)路徑的問(wèn)題與絕對(duì)路徑的使用
問(wèn)題描述
首先我們先來(lái)看一下我們這個(gè)例子的目錄結(jié)構(gòu)以及這三個(gè)文件的內(nèi)容
a.php
<?php include './c/d.php'
b.php
<?php define('__B', 'this is a test');
c/d.php
<?php include '../b.php'; var_dump(__B);
在c目錄下面的d.php文件引用了它的上級(jí)目錄下的 b.php 文件 單獨(dú)運(yùn)行 c/d.php 的時(shí)候不會(huì)出問(wèn)題
但是,如果在和b同級(jí)目錄下的a.php引用c/d.php的話就會(huì)出問(wèn)題了
它報(bào)錯(cuò)說(shuō)的是文件不存在
思考
大概意思就是 a.php 把 c/d.php 引入到 a.php 中后, include '../b.php'
這個(gè)路徑就是相對(duì)于 a.php 來(lái)說(shuō)的了,然后對(duì)于 a.php 來(lái)說(shuō)的這個(gè)相對(duì)路徑它是不存在的,所以就出現(xiàn)了這個(gè)問(wèn)題
如果一個(gè)文件可能在多個(gè)地方被引用的時(shí)候使用相對(duì)路徑就相當(dāng)容易出問(wèn)題,然后我們使用絕對(duì)路徑能夠輕松解決這個(gè)問(wèn)題。
使用絕對(duì)路徑解決問(wèn)題
如果我們把文件改成如下內(nèi)容
a.php
<?php include __DIR__.'/../b.php'; var_dump(__B);
b.php
<?php define('__B', 'this is a test');
c/d.php
<?php include __DIR__.'/../b.php'; var_dump(__B);
這樣就改成了對(duì)文件的絕對(duì)路徑進(jìn)行引用了, __DIR__
是php5.3開(kāi)始中就有的預(yù)定義的魔術(shù)常量,表示這個(gè)文件所在的目錄,然后我們利用這個(gè)來(lái)可以寫(xiě)出絕對(duì)路徑,在運(yùn)行a.php和c/d.php的時(shí)候都能夠正常執(zhí)行了,如果在php5.3之前都是使用 dirname(__FILE__)
來(lái)替代 __DIR___
總結(jié)
以上就是關(guān)于php中相對(duì)路徑的問(wèn)題以及絕對(duì)路徑的使用的全部?jī)?nèi)容,希望對(duì)大家使用PHP能有所幫助,避免再進(jìn)入php中相對(duì)路徑的坑。
- PHP利用正則表達(dá)式將相對(duì)路徑轉(zhuǎn)成絕對(duì)路徑的方法示例
- PHP文件操作之獲取目錄下文件與計(jì)算相對(duì)路徑的方法
- php命令行(cli)下執(zhí)行PHP腳本文件的相對(duì)路徑的問(wèn)題解決方法
- php計(jì)算兩個(gè)文件相對(duì)路徑的方法
- PHP獲取文件相對(duì)路徑的方法
- php求兩個(gè)目錄的相對(duì)路徑示例(php獲取相對(duì)路徑)
- 一道求$b相對(duì)于$a的相對(duì)路徑的php代碼
- php絕對(duì)路徑與相對(duì)路徑之間關(guān)系的的分析
- php zend 相對(duì)路徑問(wèn)題
- php 算法之實(shí)現(xiàn)相對(duì)路徑的實(shí)例
相關(guān)文章
uniapp中scroll-view基礎(chǔ)用法示例代碼
我們?cè)陧?xiàng)目中往往都能遇到實(shí)現(xiàn)左右滑動(dòng)跟上下滑動(dòng)的需求,下面這篇文章主要給大家介紹了關(guān)于uniapp中scroll-view基礎(chǔ)用法的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-11-11uniapp小程序使用高德地圖api實(shí)現(xiàn)路線規(guī)劃的示例代碼
路線規(guī)劃常用于出行路線的提前預(yù)覽,我們提供4種類型的路線規(guī)劃,分別為:駕車、步行、公交和騎行,滿足各種的出行場(chǎng)景,這篇文章主要介紹了uniapp小程序使用高德地圖api實(shí)現(xiàn)路線規(guī)劃,需要的朋友可以參考下2023-01-01layui的布局和表格的渲染以及動(dòng)態(tài)生成表格的方法
今天小編就為大家分享一篇layui的布局和表格的渲染以及動(dòng)態(tài)生成表格的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-09-09深入淺析ES6 Class 中的 super 關(guān)鍵字
本文給大家收藏整理了ES6 Class 中的 super 關(guān)鍵字,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友參考下吧2017-10-10js實(shí)現(xiàn)簡(jiǎn)單購(gòu)物車模塊
這篇文章主要為大家詳細(xì)介紹了js實(shí)現(xiàn)簡(jiǎn)單購(gòu)物車模塊,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-04-04JS實(shí)現(xiàn)簡(jiǎn)單打字測(cè)試
這篇文章主要為大家詳細(xì)介紹了JS實(shí)現(xiàn)簡(jiǎn)單打字測(cè)試,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-06-06JavaScript 字符串與數(shù)組轉(zhuǎn)換函數(shù)[不用split與join]
下面的代碼,不考慮他的運(yùn)行效率的話,思路不錯(cuò),大家可以看看,但在實(shí)際的應(yīng)用中,我們?nèi)匀皇褂胹plit或join來(lái)實(shí)現(xiàn)數(shù)組的操作。2009-12-12