整 理:朱 兵
时 间:2015-11-30
说 明:关于include_path使用说明
一、在什么地方遇到?
现象:在文件中遇到require_once("DB.php"),发现在当前目录下并没有该文件。
原因:主要是用到了include_path,遇到此问题,在php配置中查找include_path的路径即可找到相应的文件。
当用到函数include(),require()函数来寻找文件时候.在不设置include_path的情况下,这些函数打开文件时候默认的是以web根目录去寻找.当设置include_path以后,这些php函数就会先在指定的include_path目录下面去搜索寻找。我们可以在include_path目录下找到相应的文件。
二、include_path的设置
1、第一种方法:
linux 下
修改php.ini文件中的include_path项。
include_path=".:/opt/ci123/php-5.3.27/share/pear"
windows下
include_path=".;c:\php\includes"
在 Windows 中,用分号分隔目录。在任何其它系统中用冒号分隔目录。
编写程序时可以用常量 PATH_SEPARATOR 代替
2、第二个方法:
使用ini_set方法。
ini_set('include_path', '/usr/lib/pear');
三、运行时包含的顺序
1.如果为绝对路径,则直接包含, 并结束(找不到直接退出).
2.如果是是相对路径((形如./file, ../dir/file),则跳过include_path的作用逻辑, 直接解析相对路径(找不到直接退出)
3.都不是以上两种情况
会根据include_path,和当前执行文件的path组成一个待选的目录列表
注意点:
1、如果在指定的目录下找不到所要求包含的文件,而在当前页面目录下正好存在这个名称的文件时,则默认引入当前目录下的该文件。
2、当指定了多个目录为 include_path ,而所要求包含的文件在这几个目录都有相同名称的文件存在时,php选择使用设定 include_path 时排位居前的目录下的文件。
四、php手册中的相关函数
- set_include_path — 设置 include_path 配置选项
- ini_set() - 为一个配置选项设置值
- get_include_path() - 获取当前的 include_path 配置选项
- restore_include_path() - 还原 include_path 配置选项的值
五、扩展阅读