在《Zend Framework》一书中,入门指南;上面写着:
library/
目录的内容应该移动到PHP中的一个位置"include路径"列表
我不明白。不包括在某个位置引用某个目录的路径保持值。这就是它的意思吗?还是我必须随意将文件夹移动到"包含路径"中已经提到的位置?
PHP的include_path
与系统的PATH环境变量具有相同的用途:
"它定义了在查找要执行的命令时要搜索的目录列表。"(Bob Rankin,2011(。
正如andre matos之前的评论所指出的,您可以将库目录复制到系统的PHP include_path目录,也可以在PHP.ini文件中设置PHP路径配置指令"include_path",将库目录作为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
-或者,将文件(例如"phpinfo.php"(添加到您的web服务器知道的目录中,并在web浏览器中将其作为url打开,然后搜索"include_path">
例如,我的系统的PHP include_path位于:/usr/lib64/php
尽管最简单的方法可以说是将库目录复制到系统的PHP include_path目录(例如/usr/lib64.PHP(,但在系统的PHP.ini文件中设置PHP路径配置指令"include_path"也相当容易。
要在系统的PHP.ini文件中设置PHP路径配置指令"include_path",请打开该文件并在"路径和目录"部分下找到"include_paath"路径配置指令。它应该看起来像这样:
;;;;;;;;;;;;;;;;;;;;;;;;;
; Paths and Directories ;
;;;;;;;;;;;;;;;;;;;;;;;;;
; UNIX: "/path1:/path2"
;include_path = ".:/php/includes"
;
; Windows: "path1;path2"
;include_path = ".;c:phpincludes"
删除";"来自操作系统的PHP"include_path"路径配置指令。
例如,如果你在Linux上,它应该是这样的:
;;;;;;;;;;;;;;;;;;;;;;;;;
; Paths and Directories ;
;;;;;;;;;;;;;;;;;;;;;;;;;
; UNIX: "/path1:/path2"
include_path = ".:/php/includes"
;
; Windows: "path1;path2"
;include_path = ".;c:phpincludes"
然后将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:phpincludes"
让我解释一下我在PHP.ini文件中添加到PHP"include_path"配置指令的目录(如上所示(:
"."是当前目录,"/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
嗯。。。两者都可以。
将包含路径添加到您的php.ini
(搜索类似include_path
的内容(
; UNIX: "/path1:/path2"
;include_path = ".:/php/includes"
;
; Windows: "path1;path2"
include_path = ".;C:PHPpear;C:PHPotherfolder"
或者将文件夹移动到已包含的某个路径(您将知道哪些路径是在php.ini
上执行上一次搜索后的路径(。
当你做这样的事情时:
<?php include 'file.php'; ?>
如果文件与正在执行的脚本不在同一目录(.(中,php将在php.ini上定义的include路径中查找。