我遇到了一个set_include_path的问题,我在这个问题上看了很多消息,但是没有一个适合我。 我在Debian上,我的根目录将被设置为/ home / project /
所以我尝试了这四个不同的东西:
ini_set("include_path", '/home/project'); ini_set("include_path", '.:/home/project'); set_include_path('.:/home/project'); set_include_path('/home/project'); set_include_path(get_include_path().PATH_SEPARATOR.'/home/project');
但没有作品…当我做的回声get_include_path(); 每次看起来都不错。
但是第四种方法与我的电脑上的WAMP完美配合。
所有这些错误消息:
Warning: include(/config/config.php) [function.include]: failed to open stream: No such file or directory in /home/project/web/www.project.com/index.php on line 3 Warning: include() [function.include]: Failed opening '/config/config.php' for inclusion (include_path='.:/usr/share/php:/usr/share/pear:/home/project') in /home/project/web/www.project.com/index.php on line 3
尝试使用PATH_SEPARATOR
常量,如在文档中所做的那样。
set_include_path(get_include_path() . PATH_SEPARATOR . $path);
也许它在您部署应用程序的系统上有所不同。
更新 :包含路径似乎很好,但问题是不同的..
你不应该包括:
require '/config/config.php'
但
require 'config/config.php'
所以放下主导斜线,它应该工作。
使用这个设置: set_include_path(get_include_path().PATH_SEPARATOR.'/path/');
,这不会删除由其他脚本设置的现有include_path,并添加默认的系统路径分隔符。
路径分隔符可能不同。
set_include_path(implode(PATH_SEPARATOR, array( '.', '/home/project', get_include_path() ));
通过这个,你可以将当前包含路径附加到你自己添加的路径上,并为每个系统添加正确的路径分隔符。