关于include_path使用说明

整    理:朱 兵
时    间: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 配置选项的值
 五、扩展阅读

 

发表评论