PHP中set_include_path()函數(shù)相關用法分析
來源:易賢網(wǎng) 閱讀:1355 次 日期:2016-08-12 14:48:36
溫馨提示:易賢網(wǎng)小編為您整理了“PHP中set_include_path()函數(shù)相關用法分析”,方便廣大網(wǎng)友查閱!

這篇文章主要介紹了PHP中set_include_path()函數(shù)相關用法,結合實例形式分析了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__

它表示文件的完整路徑(當然包括文件名在內(nèi))

也就是說它根據(jù)你文件所在的目錄不同,有著不同的值;當然,當它用在包行文件中的時候,它的值是包含的路徑;

然后:

我們看這個函數(shù):

string dirname ( string path )

它是PHP內(nèi)置函數(shù),它的作用是什么呢,就是返回除了本文件名以外的所在目錄,例如:

假如你的首頁中用到了_FILE_這個變量:

(假設你的網(wǎng)頁所在目錄為:http://localhost/web/index.php),那么:

_FILE_的值為http://localhost/web/index.php(一個絕對路徑)。而此時dirname (_FILE_)表示的就是http://localhost/web/也就是沒有index.php這個文件名。

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

最后:

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

那么你后你就可以用MEN來表示ooooo這個字符串;

那么這么寫有什么好處呢,那就是當你需要修改變量的時候,你只要修改它就行了,相當?shù)姆奖?,尤其是像路徑這樣的字符串!

下面解釋一下這段代碼:

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,里面有數(shù)據(jù)庫連接文件:conn.php……,

你這樣設置:

set_include_path("/include")

那么以后你就直接可以在其他頁面中使用

include("conn.php")

這不是經(jīng)常見到嗎?它參數(shù)就字符串,當然你也可以設置多個路徑,中間用;分開,而那句:

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');

而你突然發(fā)現(xiàn)我把這些要包含的文件放在inc目錄下不安全,怎么辦,要改,我想放到include目錄中,好的,這么多頁面不累死才怪:有沒有好的方法!有?。。。。。?!

在config.inc.php中寫著么一句:

set_include_path(get_include_path() .'/include')

就這么簡單,對,就這么簡單!動態(tài)的修改!

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

希望本文所述對大家PHP程序設計有所幫助。

更多信息請查看網(wǎng)絡編程
易賢網(wǎng)手機網(wǎng)站地址:PHP中set_include_path()函數(shù)相關用法分析

2025國考·省考課程試聽報名

  • 報班類型
  • 姓名
  • 手機號
  • 驗證碼
關于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 新媒體/短視頻平臺 | 手機站點 | 投訴建議
工業(yè)和信息化部備案號:滇ICP備2023014141號-1 云南省教育廳備案號:云教ICP備0901021 滇公網(wǎng)安備53010202001879號 人力資源服務許可證:(云)人服證字(2023)第0102001523號
聯(lián)系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關注公眾號:hfpxwx
咨詢QQ:1093837350(9:00—18:00)版權所有:易賢網(wǎng)