set include path詳細解釋

2022-04-29 11:54:10 字數 4434 閱讀 6944

zendframework的示例index.php裡有這樣一句

不知道 path_separator是什麼,其實就是乙個常量

直接echo就知道它的值了,在linux上是乙個":"號,win上是乙個";"號

set_include_path就是設定php的包含檔案路徑,相當是作業系統的環境變數

<?php// works as of php 4.3.0set_include_path('/inc'); // works in all php versionsini_set('include_path', '/inc');?>

關於set_include_path的問題,在win下,當你要include多個路徑的話,你要用";"隔開,但在linux下就使用":"隔開的。

所以上面的zf的**真是絕配.

get_include_path取得當前已有的環境變數

首先

我們來看這個全域性變數:__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這個字串;

如果你學過c語言,你就很清楚,其中也有乙個類似的#define men "ooooo";(其實應該說哦php和c類似,因為php就是c編寫的);

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

酒後給你解釋一下你這段**:

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;

首先

我們來看這個全域性變數:__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這個字串;

如果你學過c語言,你就很清楚,其中也有乙個類似的#define men "ooooo";(其實應該說哦php和c類似,因為php就是c編寫的);

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

酒後給你解釋一下你這段**:

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;

Informatica Update 機制詳解

informatica update 機制詳解 informatica 作為etl工具,update是其很重要的乙個特性。也正因為如此,我們會發現在informatica工具的很多地方都會有update的相關設定,許多時候給大家都造成了很大的迷惑,不知道誰先誰後,誰的優先順序高,或者具體的作用是什麼...

CString string char 比較詳解

關鍵點 主要用於mfc的編寫,而屬於stl,兩者都是符合標準c 的,但是在非 windows平台或者說vc上還是用吧。另外還有乙個這是傳統c 才有的 一 概述 string和cstring均是字串模板類,string為標準模板類 stl 定義的字串類,已經納入c 標準之中 cstring typed...

CString string char 比較詳解

cstring 為visual c 中最常用的字串類,繼承自c stringt類,主要應用在mfc和atl程式設計中,主要資料型別有char 應用於ansi wchar t unicode tchar ansi與unicode均可 char 為c程式設計中最常用的字串指標,一般以 0 為結束標誌 二...