1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
一直對include_path的作用不了解,也沒怎麼注意過它的用途,今天在網上看一些資料後明白了,記錄一下:      其實設定include_path的作用就是設定用include()函式包函檔案時的路徑,當然也可以不設定include_path,只要在包函檔案時寫出具體的檔案相對或絕對路即可:
下面以安裝smarty為例:
下面內容中,我們都是假設你的檔案放在了D:AppservwwwSmarty下。
 
     1、找到你的php.ini配置檔案修改php.ini的include_path選項,把smarty的庫檔案路徑加上,比如:
include_path = "D:AppservwwwSmartylibs" 
 
提醒一下,php.ini中一共有兩處include_path,一處是Unix下使用的,一處是windows下使用的,要修改windows下使用的:
-------------------------------------------------------------
 ; Windows: "path1;path2"
 ;include_path = ".:/php/includes"
  修改為:
; Windows: "path1;path2"
include_path = "D:AppservwwwSmartylibs"
 儲存即可,這個是PHP的包含檔案路徑,可以設定多個,用";"格開。
    2、載入Smarty庫,如果在php.ini設定了include_path為D:AppservwwwMysmartylibs,那麼可以直接用include("Smarty.class.php");另外不設定include_path,可以直接把Smarty.class.php拷到網站目錄,就可以用相對路徑或用絕對路徑了,如include("D:AppservwwwSmartylibsSmarty.class.php");
     可以看出設定了include_path後,要包函檔案Smarty.class.php就比較簡便了,不用寫一大串的路徑(其實也不見得方便,只是當很多需要包函的檔案都在一個目錄下時,這樣會覺得比較方便)。
     有兩種方法來設定php的include_path.
一:修改php.ini檔案中的include_path項。
例:include_path = .:/usr/local/lib/php:./include
二:使用ini_set方法(對於無法修改php.ini的情況)。
例:ini_set("include_path", ".:../:./include:../include
  
include_path補充
include_path用來設定include()或require()函式包含檔案的參考路徑.
也就是說當使用include()或require()函式包含檔案的時候,程式首先以include_path設定的路徑作為參考點去找檔案,如果找不到,則以程式自身所在的路徑為參考點去找所要的檔案,如果都找不到,則出錯.
當include_path設定了多個參考路徑(每個路徑用分號隔開)時,排在前面的路徑優先找.
例如: ini_set(`include_path`,`d:wwwmysite est;d:wwwmysite est2`);
include(`aaa/test.php`);
程式會先以路徑d:wwwmysite est為參考去找aaa/test.php,若沒有,再以d:wwwmysite est2為參考去找,再沒有,則以自身所在路徑為參考去找.

本文轉自 IT阿飛 51CTO部落格,原文連結:http://blog.51cto.com/itafei/1867560