PHP中set_include_path()函數(shù)相關(guān)用法分析
本文實(shí)例講述了PHP中set_include_path()函數(shù)相關(guān)用法。分享給大家供大家參考,具體如下:
先看如下代碼:
<?php
/** 定義根目錄 */
define('__TYPECHO_ROOT_DIR__', dirname(__FILE__));
/** 定義插件目錄(相對(duì)路徑) */
define('__TYPECHO_PLUGIN_DIR__', '/usr/plugins');
/** 設(shè)置包含路徑 */
@set_include_path(get_include_path() . PATH_SEPARATOR .
__TYPECHO_ROOT_DIR__ . '/var' . PATH_SEPARATOR .
__TYPECHO_ROOT_DIR__ . __TYPECHO_PLUGIN_DIR__);
?>
首先:
我們來(lái)看這個(gè)全局變量:__FILE__
它表示文件的完整路徑(當(dāng)然包括文件名在內(nèi))
也就是說(shuō)它根據(jù)你文件所在的目錄不同,有著不同的值;當(dāng)然,當(dāng)它用在包行文件中的時(shí)候,它的值是包含的路徑;
然后:
我們看這個(gè)函數(shù):
string dirname ( string path )
它是PHP內(nèi)置函數(shù),它的作用是什么呢,就是返回除了本文件名以外的所在目錄,例如:
假如你的首頁(yè)中用到了_FILE_這個(gè)變量:
(假設(shè)你的網(wǎng)頁(yè)所在目錄為:http://localhost/web/index.php),那么:
_FILE_的值為http://localhost/web/index.php(一個(gè)絕對(duì)路徑)。而此時(shí)dirname (_FILE_)表示的就是http://localhost/web/也就是沒(méi)有index.php這個(gè)文件名。
而dirname(dirname(_FILE_))表示的就是上一級(jí)的目錄,以此類推;
最后:
看一下define()這個(gè)函數(shù),其實(shí)他就是一個(gè)定義常量的函數(shù),比如:define('MEN','ooooo');
那么你后你就可以用MEN來(lái)表示ooooo這個(gè)字符串;
那么這么寫(xiě)有什么好處呢,那就是當(dāng)你需要修改變量的時(shí)候,你只要修改它就行了,相當(dāng)?shù)姆奖悖绕涫窍衤窂竭@樣的字符串!
下面解釋一下這段代碼:
define('__TYPECHO_ROOT_DIR__', dirname(__FILE__));
就是定義__TYPECHO_ROOT_DIR__為這個(gè)文件所在的目錄,像這種定義一般是放在config.inc.php中的,那么獲取的目錄也就是config.inc.php所在的目錄;也就是根目錄!
define('__TYPECHO_PLUGIN_DIR__', '/usr/plugins');
這就不用說(shuō)了!
至于set_include_path(get_include_path() . PATH_SEPARATOR . $path);是什么意思,他就是包含路徑;
比如你有一個(gè)文件夾:命名為include,里面有數(shù)據(jù)庫(kù)連接文件:conn.php……,
你這樣設(shè)置:
set_include_path("/include")
那么以后你就直接可以在其他頁(yè)面中使用
include("conn.php")
這不是經(jīng)常見(jiàn)到嗎?它參數(shù)就字符串,當(dāng)然你也可以設(shè)置多個(gè)路徑,中間用;分開(kāi),而那句:
set_include_path(get_include_path() . PATH_SEPARATOR . __TYPECHO_ROOT_DIR__ . '/var' . PATH_SEPARATOR . __TYPECHO_ROOT_DIR__ . __TYPECHO_PLUGIN_DIR__);
什意思呢,舉個(gè)例子:
你的一個(gè)頁(yè)面有這樣的語(yǔ)句:
include('/inc/sql.php');
include('/inc/conn.php');
而你突然發(fā)現(xiàn)我把這些要包含的文件放在inc目錄下不安全,怎么辦,要改,我想放到include目錄中,好的,這么多頁(yè)面不累死才怪:有沒(méi)有好的方法!有?。。。。。?!
在config.inc.php中寫(xiě)著么一句:
set_include_path(get_include_path() .'/include')
就這么簡(jiǎn)單,對(duì),就這么簡(jiǎn)單!動(dòng)態(tài)的修改!
你不要看這個(gè):get_include_path() . PATH_SEPARATOR . $path這是什么,他就一路徑字符串,中間的.是字符串連接符號(hào),也就是剛才定義的那些常量的組合,組合成一字符串,也好就是說(shuō)他可以動(dòng)態(tài)的設(shè)置包含路徑!如果正確返回包含路徑,不正確返回false;
更多關(guān)于PHP相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《php面向?qū)ο蟪绦蛟O(shè)計(jì)入門教程》、《PHP數(shù)學(xué)運(yùn)算技巧總結(jié)》、《PHP數(shù)組(Array)操作技巧大全》、《php字符串(string)用法總結(jié)》、《PHP數(shù)據(jù)結(jié)構(gòu)與算法教程》、《php程序設(shè)計(jì)算法總結(jié)》、《php正則表達(dá)式用法總結(jié)》、及《php常見(jiàn)數(shù)據(jù)庫(kù)操作技巧匯總》
希望本文所述對(duì)大家PHP程序設(shè)計(jì)有所幫助。
- php中的路徑問(wèn)題與set_include_path使用介紹
- php mysql like 實(shí)現(xiàn)多關(guān)鍵詞搜索的方法
- php通過(guò)PHPExcel導(dǎo)入Excel表格到MySQL數(shù)據(jù)庫(kù)的簡(jiǎn)單實(shí)例
- 遍歷指定目錄,并存儲(chǔ)目錄內(nèi)所有文件屬性信息的php代碼
- PHP圖像識(shí)別技術(shù)原理與實(shí)現(xiàn)
- PHP下的浮點(diǎn)運(yùn)算不準(zhǔn)的解決方法
- PHP讀取大文件的幾種方法介紹
- php set_include_path函數(shù)設(shè)置 include_path 配置選項(xiàng)
相關(guān)文章
php+ajax無(wú)刷新上傳圖片的實(shí)現(xiàn)方法
這篇文章主要介紹了php+ajax無(wú)刷新上傳圖片的實(shí)現(xiàn)方法,涉及php結(jié)合ajax進(jìn)行文件傳輸操作相關(guān)技巧,需要的朋友可以參考下2016-12-12
php中使用parse_url()對(duì)網(wǎng)址進(jìn)行解析的實(shí)現(xiàn)代碼(parse_url詳解)
parse_url用來(lái)解析一個(gè) URL 并返回一個(gè)關(guān)聯(lián)數(shù)組,包含在 URL 中出現(xiàn)的各種組成部分2012-01-01
PHP+Mysql日期時(shí)間如何轉(zhuǎn)換(UNIX時(shí)間戳和格式化日期)
UNIX時(shí)間戳和格式化日期是我們常打交道的兩個(gè)時(shí)間表示形式,Unix時(shí)間戳存儲(chǔ)、處理方便,但是不直觀,格式化日期直觀,但是處理起來(lái)不如Unix時(shí)間戳那么自如,所以有的時(shí)候需要互相轉(zhuǎn)換,下面給出互相轉(zhuǎn)換的幾種轉(zhuǎn)換方式2012-07-07
PHP中Array相關(guān)函數(shù)簡(jiǎn)介
在php教程中數(shù)組是種強(qiáng)大的數(shù)據(jù)類型,他可以做的事情很多,可以存儲(chǔ)不同的數(shù)據(jù)類型在一個(gè)數(shù)組中,下面我們列出了數(shù)組常用的操作,排序,鍵名對(duì)數(shù)組排序等做法。2016-07-07
php定期拉取數(shù)據(jù)對(duì)比方法實(shí)例
這篇文章主要給大家介紹了關(guān)于php定期拉取數(shù)據(jù)對(duì)比的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用php具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09
PHP生成Flash動(dòng)畫(huà)的實(shí)現(xiàn)代碼
使用 Flash 動(dòng)畫(huà)的第一種方法是使用 Ming 庫(kù)動(dòng)態(tài)生成它們。Ming 庫(kù)是一個(gè) PHP 庫(kù),在wamp我看到已經(jīng)帶了這個(gè)庫(kù),只是沒(méi)有啟用。2010-03-03
探討Smarty中如何獲取數(shù)組的長(zhǎng)度以及smarty調(diào)用php函數(shù)的詳解
本篇文章是對(duì)Smarty中如何獲取數(shù)組的長(zhǎng)度以及smarty調(diào)用php函數(shù)的方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06
php中使用__autoload()自動(dòng)加載未定義類的實(shí)現(xiàn)代碼
當(dāng)PHP引擎遇到未實(shí)例化的類時(shí)就會(huì)觸發(fā)這個(gè)方法,當(dāng)然你的php代碼中要用到__autoload()才可以哦2013-02-02

