這篇文章主要介紹了PHP中set_include_path()函數相關用法,結合實例形式分析了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__); ?>
首先:
我們來看這個全域變數:__FILE__
它表示檔案的完整路徑(當然包括檔案名稱在內)
也就是說它根據你檔案所在的目錄不同,有著不同的值;當然,當它用在套件行檔案中的時候,它的值是包含的路徑;
然後:
我們看這個函數:
string dirname ( string path )##它是PHP內建函數,它的作用是什麼呢,就是返回除了本檔名以外的所在目錄,例如:假如你的首頁中用到了_FILE_這個變數:(假設你的網頁所在目錄為:http://localhost/web/index.php),那麼:
_FILE_的值為http://localhost/web/index.php(絕對路徑)。而此時dirname (_FILE_)表示的就是http://localhost/web/也就是沒有index.php這個檔名。
define('__TYPECHO_ROOT_DIR__', dirname(__FILE__));就是定義__TYPECHO_ROOT_DIR__為這個檔案所在的目錄,像這個定義一般是放在config.inc.php中的,那麼取得的目錄也就是config.inc.php所在的目錄;也就是根目錄!
define('__TYPECHO_PLUGIN_DIR__', '/usr/plugins');這就不用說了! 至於set_include_path(get_include_path() . PATH_SEPARATOR . $path);是什麼意思,他就是包含路徑;例如你有一個資料夾:命名為include,裡面有資料庫連接檔案:conn.php…,你這樣設定:
set_include_path("/include")那麼以後你就直接可以在其他頁面中使用
include("conn.php")這不是經常見到嗎?它參數就字串,當然你也可以設定多個路徑,中間用;分開,而那句話:
set_include_path(get_include_path() . PATH_SEPARATOR . __TYPECHO_ROOT_DIR__ . '/var' . PATH_SEPARATOR . __TYPECHO_ROOT_DIR__ . __TYPECHO_PLUGIN_DIR__);什意思呢,舉個例子:你的一個頁面有這樣的語句:
include('/inc/sql.php'); include('/inc/conn.php');而你突然發現我把這些要包含的檔案放在inc目錄下不安全,怎麼辦,要改,我想放到include目錄中,好的,這麼多頁面不累死才怪:有沒有好的方法!有! ! ! ! ! ! ! 在config.inc.php中寫麼一句:
set_include_path(get_include_path() .'/include')就這麼簡單,對,就這麼簡單!動態的修改! 你不要看這個:get_include_path() . PATH_SEPARATOR . $path這是什麼,他就一路徑字串,中間的.是字串連接符號,也就是剛才定義的那些常數的組合,組合成一字串,也好就是說他可以動態的設定包含路徑!如果正確返回包含路徑,不正確返回false; 總結:以上就是這篇文章的全部內容,希望能對大家的學習有所幫助。 相關推薦:
以上是關於PHP中set_include_path()函數相關用法詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!