2011-04-13 49 views
4

在本書Zend Framework中,初學者指南;它說:將文件移動到包含路徑列表中意味着什麼?

library/目錄的內容應移動到您的PHP「包含 路徑」列表中的一個位置。

我不明白。不包括引用特定位置中某個目錄的路徑保持值。這是什麼意思?或者我是否需要將文件夾移動到「包含路徑」中已經提到的位置?

回答

9

PHP的include_path有異曲同工之妙作爲系統的PATH環境變量:

「它定義目錄列表尋找一個命令執行時進行搜索。」 (Bob Rankin,2011)。

正如安德烈·馬特斯在以往的評論所指出的,你可以在圖書館目錄複製到你的系統的PHP的include_path目錄,也可以設置PHP路徑配置指令,「包含路徑」,在你的php.ini文件,包括庫目錄作爲PHP的目錄進行搜索。

無論您選擇哪種方式,您都需要知道系統的PHP include_path目錄。要找到你的系統的PHP的include_path目錄,你可以這樣做:

% php -i | grep include_path # assuming you are on Linux 

- 或者,創建一個文件,例如, 'phpinfo.php的',並添加以下PHP代碼:

<?php phpinfo(); ?> 

和通過運行PHP文件,

% php phpinfo.php | grep include_path 

-or,或者,文件如「phpinfo.php的」,添加到您的Web服務器知道一個目錄,並將其作爲在Web瀏覽器和搜索網址'include_path'。

例如,我的系統的PHP包含路徑是:/usr/lib64/php

雖然最簡單的方法可以說是剛剛庫目錄複製到系統中的PHP的include_path目錄(例如,在/ usr/lib64下/ PHP),它是也相當容易在您的系統的php.ini文件中設置PHP路徑配置指令'include_path'。

要在系統的php.ini文件中設置PHP路徑配置指令'include_path',請打開該文件並在'路徑和目錄'部分下找到'include_path'路徑配置指令。它應該看起來像這樣:

;;;;;;;;;;;;;;;;;;;;;;;;; 
; Paths and Directories ; 
;;;;;;;;;;;;;;;;;;;;;;;;; 

; UNIX: "/path1:/path2" 
;include_path = ".:/php/includes" 
; 
; Windows: "\path1;\path2" 
;include_path = ".;c:\php\includes" 

刪除';'來自操作系統的PHP'include_path'路徑配置指令。

例如,如果你是在Linux上,它應該是這樣的:

;;;;;;;;;;;;;;;;;;;;;;;;; 
; Paths and Directories ; 
;;;;;;;;;;;;;;;;;;;;;;;;; 

; UNIX: "/path1:/path2" 
include_path = ".:/php/includes" 
; 
; Windows: "\path1;\path2" 
;include_path = ".;c:\php\includes" 

那麼PHP「include_path中」路徑配置指令設置圖書館的目錄,作爲PHP進行搜索的目錄。

例如,我下載了ZendFramework到

/usr/src/done/ZendFramework-1.11.4-minimal/

因此,我必須設置PHP 'include_path中' 配置指令包括ZendFramework目錄中的庫目錄,如下所示:

include_path = ".:/usr/lib64/php:/usr/src/done/ZendFramework-1.11.4-minimal/library" 

系統的php.ini文件中的「路徑和目錄」部分現在應該如下所示:

;;;;;;;;;;;;;;;;;;;;;;;;; 
; Paths and Directories ; 
;;;;;;;;;;;;;;;;;;;;;;;;; 

; UNIX: "/path1:/path2" 
;include_path = ".:/php/includes" 
include_path = ".:/usr/lib64/php:/usr/src/done/ZendFramework-1.11.4-minimal/library" 
; 
; Windows: "\path1;\path2" 
;include_path = ".;c:\php\includes" 

讓我解釋一下我加入PHP「include_path中」配置指令在php.ini文件的目錄(如上圖所示):

的「」是當前目錄,'/ usr/lib64/php'是系統的PHP include_path目錄,'/usr/src/done/ZendFramework-1.11.4-minimal/library'是目錄中庫目錄的路徑ZendFramework目錄。請注意,PHP'include_path'配置指令中列出的每個目錄必須用':'(與系統的PATH環境變量中列出的目錄相同)分隔。

後你在php.ini文件中加入你的目錄到PHP「include_path中」配置指令的列表中,您必須重新啓動Web服務器來更改保存到PHP。

例如,% sudo apachectl restart # assumes you are using Apache as your web server

希望這會有所幫助,

//。Elliot

1

那麼...你可以做到這一點。

添加include路徑到您php.ini(搜索類似include_path

; UNIX: "/path1:/path2" 
;include_path = ".:/php/includes" 
; 
; Windows: "\path1;\path2" 
include_path = ".;C:\PHP\pear;C:\PHP\otherfolder" 

或者文件夾移動到已經包含了一些路徑(你會知道哪些是對php.ini執行以前的搜索後)。

當你做這樣的事情:

<?php include 'file.php'; ?> 

如果該文件是不是在同一個目錄中你執行PHP將看在php.ini文件中定義的包括路徑的腳本()。