《PHP編程:PHP中set_include_path()函數相關用法分析》要點:
本文介紹了PHP編程:PHP中set_include_path()函數相關用法分析,希望對您有用。如果有疑問,可以聯系我們。
本文實例講述了PHP中set_include_path()函數相關用法.分享給大家供大家參考,具體如下:PHP編程
先看如下代碼:PHP編程
<?php /** 定義根目錄 */ define('__TYPECHO_ROOT_DIR__', dirname(__FILE__)); /** 定義插件目錄(相對路徑) */ define('__TYPECHO_PLUGIN_DIR__', '/usr/plugins'); /** 設置包含路徑 */ @set_include_path(get_include_path() . PATH_SEPARATOR . __TYPECHO_ROOT_DIR__ . '/var' . PATH_SEPARATOR . __TYPECHO_ROOT_DIR__ . __TYPECHO_PLUGIN_DIR__); ?>
首先:PHP編程
我們來看這個全局變量:__FILE__PHP編程
它表示文件的完整路徑(當然包括文件名在內)PHP編程
也就是說它根據你文件所在的目錄不同,有著不同的值;當然,當它用在包行文件中的時候,它的值是包含的路徑;PHP編程
然后:PHP編程
我們看這個函數:PHP編程
string dirname ( string path )
它是PHP內置函數,它的作用是什么呢,就是返回除了本文件名以外的所在目錄,例如:PHP編程
假如你的首頁中用到了_FILE_這個變量:PHP編程
(假設你的網頁所在目錄為:http://localhost/web/index.php),那么:
_FILE_的值為http://localhost/web/index.php(一個絕對路徑).而此時dirname (_FILE_)表示的就是http://localhost/web/也就是沒有index.php這個文件名.PHP編程
而dirname(dirname(_FILE_))表示的就是上一級的目錄,以此類推;PHP編程
最后:PHP編程
看一下define()這個函數,其實他就是一個定義常量的函數,比如:define('MEN','ooooo');PHP編程
那么你后你就可以用MEN來表示ooooo這個字符串;PHP編程
那么這么寫有什么好處呢,那就是當你需要修改變量的時候,你只要修改它就行了,相當的方便,尤其是像路徑這樣的字符串!PHP編程
下面解釋一下這段代碼:PHP編程
define('__TYPECHO_ROOT_DIR__', dirname(__FILE__));
就是定義__TYPECHO_ROOT_DIR__為這個文件所在的目錄,像這種定義一般是放在config.inc.php中的,那么獲取的目錄也就是config.inc.php所在的目錄;也就是根目錄!PHP編程
define('__TYPECHO_PLUGIN_DIR__', '/usr/plugins');
這就不用說了!PHP編程
至于set_include_path(get_include_path() . PATH_SEPARATOR . $path);是什么意思,他就是包含路徑;PHP編程
比如你有一個文件夾:命名為include,里面有數據庫連接文件:conn.php……,PHP編程
你這樣設置:PHP編程
set_include_path("/include")
那么以后你就直接可以在其他頁面中使用PHP編程
include("conn.php")
這不是經常見到嗎?它參數就字符串,當然你也可以設置多個路徑,中間用;分開,而那句:PHP編程
set_include_path(get_include_path() . PATH_SEPARATOR . __TYPECHO_ROOT_DIR__ . '/var' . PATH_SEPARATOR . __TYPECHO_ROOT_DIR__ . __TYPECHO_PLUGIN_DIR__);
什意思呢,舉個例子:PHP編程
你的一個頁面有這樣的語句:PHP編程
include('/inc/sql.php'); include('/inc/conn.php');
而你突然發現我把這些要包含的文件放在inc目錄下不安全,怎么辦,要改,我想放到include目錄中,好的,這么多頁面不累死才怪:有沒有好的方法!有!!!!!!!PHP編程
在config.inc.php中寫著么一句:PHP編程
set_include_path(get_include_path() .'/include')
就這么簡單,對,就這么簡單!動態的修改!PHP編程
你不要看這個:get_include_path() . PATH_SEPARATOR . $path這是什么,他就一路徑字符串,中間的.是字符串連接符號,也就是剛才定義的那些常量的組合,組合成一字符串,也好就是說他可以動態的設置包含路徑!如果正確返回包含路徑,不正確返回false;PHP編程
更多關于PHP相關內容感興趣的讀者可查看本站專題:《php面向對象程序設計入門教程》、《PHP數學運算技巧總結》、《PHP數組(Array)操作技巧大全》、《php字符串(string)用法總結》、《PHP數據結構與算法教程》、《php程序設計算法總結》、《php正則表達式用法總結》、及《php常見數據庫操作技巧匯總》PHP編程
希望本文所述對大家PHP程序設計有所幫助.PHP編程
轉載請注明本頁網址:
http://www.snjht.com/jiaocheng/5626.html