首頁  >  文章  >  後端開發  >  關於PHP中set_include_path()函數相關用法詳解

關於PHP中set_include_path()函數相關用法詳解

墨辰丷
墨辰丷原創
2018-06-01 17:24:111674瀏覽

這篇文章主要介紹了PHP中set_include_path()函數相關用法,結合實例形式分析了php針對文件路徑設定的相關技巧,具有一定參考借鑒價值,需要的朋友可以參考下

#先看如下程式碼:

<?php
/** 定义根目录 */
define(&#39;__TYPECHO_ROOT_DIR__&#39;, dirname(__FILE__));
/** 定义插件目录(相对路径) */
define(&#39;__TYPECHO_PLUGIN_DIR__&#39;, &#39;/usr/plugins&#39;);
/** 设置包含路径 */
@set_include_path(get_include_path() . PATH_SEPARATOR .
__TYPECHO_ROOT_DIR__ . &#39;/var&#39; . 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這個檔名。

而dirname(dirname(_FILE_))表示的就是上一層的目錄,以此類推;

最後:

看一下define()這個函數,其實他就是一個定義常數的函數,例如:define('MEN','ooooo');

那麼你後你就可以用MEN來表示ooooo這個字串;

那麼這麼寫有什麼好處呢,那就是當你需要修改變數的時候,你只要修改它就行了,相當的方便,尤其是像路徑這樣的字串!

下面解釋這段程式碼:

define(&#39;__TYPECHO_ROOT_DIR__&#39;, dirname(__FILE__));

就是定義__TYPECHO_ROOT_DIR__為這個檔案所在的目錄,像這個定義一般是放在config.inc.php中的,那麼取得的目錄也就是config.inc.php所在的目錄;也就是根目錄!

define(&#39;__TYPECHO_PLUGIN_DIR__&#39;, &#39;/usr/plugins&#39;);

這就不用說了!

至於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__ . &#39;/var&#39; . PATH_SEPARATOR .
__TYPECHO_ROOT_DIR__ . __TYPECHO_PLUGIN_DIR__);

什意思呢,舉個例子:

你的一個頁面有這樣的語句:

include(&#39;/inc/sql.php&#39;);
include(&#39;/inc/conn.php&#39;);

而你突然發現我把這些要包含的檔案放在inc目錄下不安全,怎麼辦,要改,我想放到include目錄中,好的,這麼多頁面不累死才怪:有沒有好的方法!有! ! ! ! ! ! !

在config.inc.php中寫麼一句:

set_include_path(get_include_path() .&#39;/include&#39;)

就這麼簡單,對,就這麼簡單!動態的修改!

你不要看這個:get_include_path() . PATH_SEPARATOR . $path這是什麼,他就一路徑字串,中間的.是字串連接符號,也就是剛才定義的那些常數的組合,組合成一字串,也好就是說他可以動態的設定包含路徑!如果正確返回包含路徑,不正確返回false;

總結:以上就是這篇文章的全部內容,希望能對大家的學習有所幫助。

相關推薦:

PHP實作檔案操作圖文詳解

php實作簡單中文驗證碼功能的方法

php中對稱加密演算法的實作

以上是關於PHP中set_include_path()函數相關用法詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn