一直對include_path的作用不了解,也沒怎麼注意過它的用途,今天在網上看一些資料後明白了,記錄一下:
其實設置include_path的作用就是設置用include()函數包函文件時的路徑,當然也可以不設置include_path,只要在包函文件時寫出具體的文件相對或絕對路即可:
下面以安裝smarty爲例:
下面內容中,我們都是假設你的文件放在了D:\Appserv\www\Smarty下。
1、找到你的php.ini配置文件修改php.ini的include_path選項,把smarty的庫文件路徑加上,比如:
include_path = "D:\Appserv\www\Smarty\libs"
提醒一下,php.ini中一共有兩處include_path,一處是Unix下使用的,一處是windows下使用的,要修改windows下使用的:
-------------------------------------------------------------
; Windows: "\path1;\path2"
;include_path = ".;c:\php\includes"
修改爲:
; Windows: "\path1;\path2"
include_path = "D:\Appserv\www\Smarty\libs"
保存即可,這個是PHP的包含文件路徑,可以設置多個,用";"格開。
2、載入Smarty庫,如果在php.ini設置了include_path爲D:\Appserv\www\Mysmarty\libs,那麼可以直 接用include("Smarty.class.php");另外不設置include_path,可以直接把Smarty.class.php拷到網 站目錄,就可以用相對路徑或用絕對路徑了,如include("D:\Appserv\www\Smarty\libs \Smarty.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:\www\mysite\test;d:\www\mysite\test2');
include('aaa/test.php');
程序會先以路徑d:\www\mysite\test爲參考去找aaa/test.php,若沒有,再以d:\www\mysite\test2爲參考去找,再沒有,則以自身所在路徑爲參考去找.