DIRECTORY_SEPARATOR:目录分隔符,linux上就是’/’ windows上是’\’
PATH_SEPARATOR:路径分隔符,include多个路径使用,在win下,当你要include多个路径的话,你要用”;”隔开,但在linux下就使用”:”隔开的。
=================================================
zendframework include 设置 index.php
set_include_path('.' . PATH_SEPARATOR . '../library/' . PATH_SEPARATOR . './application/models/'
. PATH_SEPARATOR . './application/lib/'
. PATH_SEPARATOR . get_include_path());
PATH_SEPARATOR是一个常量,在Linux系统中是一个" : "号,Windows上是一个" ; "号。所以编写程序时最好用常量 PATH_SEPARATOR 代替,否则如果系统从linux移植到win系统或反过来移植会出错!
get_include_path取得当前已有的环境变量,加上前面的设置就是新的系统include
=================================================
请教PHP中的set_include_path()函数
悬赏分:0 - 解决时间: 2009年10月18日 20时13分
有点疑惑,请各位指点。
目录结构
D://root //根目录root
|-inc
| |-a.php//设置了set_include_path('D:/root');
| |-b.php
|
|_index.php
a.php为基本配置文件,代码如下:
<?php
set_include_path('D:/root');
require_once('b.php'); //问:为什么这地方不是 'inc/b.php',一打这个路径就出错。
?>
index.php代码
<?php
require_once 'inc/a.php';
……//其它代码
?>
目录结构
D://root //根目录root
|-inc
| |-a.php//设置了set_include_path('D:/root');
| |-b.php
|
|_index.php
a.php为基本配置文件,代码如下:
<?php
set_include_path('D:/root');
require_once('b.php'); //问:为什么这地方不是 'inc/b.php',一打这个路径就出错。
?>
index.php代码
<?php
require_once 'inc/a.php';
……//其它代码
?>
最佳答案
如果路径是相对路径(./开头,或者../开头),则按照相对路径的情况对待。(如 include("./b.php"))
如果是物理路径,则直接寻找该路径。(如 include("D:/root/inc/b.php"))
如果路径不是相对开头。(如 include("b.php"))
则查询php.ini里的include_path的路径。按照include_path的顺序依次查找。
include_path的值可以通过set_include_path() 来改变include_path的路径。
如果是物理路径,则直接寻找该路径。(如 include("D:/root/inc/b.php"))
如果路径不是相对开头。(如 include("b.php"))
则查询php.ini里的include_path的路径。按照include_path的顺序依次查找。
include_path的值可以通过set_include_path() 来改变include_path的路径。
附:php.ini里的include_path的路径格式参考:
; Windows: "\path1;\path2"
include_path = ".;c:\php\includes;c:\php\ZF\library\zend"
include_path = ".;c:\php\includes;c:\php\ZF\library\zend"