这对';移动';包含路径列表中的文件


What does it mean to 'move' a file into include path list?

在《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:'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.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:'PHP'pear;C:'PHP'otherfolder"

或者将文件夹移动到已包含的某个路径(您将知道哪些路径是在php.ini上执行上一次搜索后的路径(。

当你做这样的事情时:

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

如果文件与正在执行的脚本不在同一目录(.(中,php将在php.ini上定义的include路径中查找。