require_once和include_once不能正确parsing文件

我的PHP的require_once有问题,require,include_once和include函数没有正确parsing文件。 我使用Apache 2.2.11在Windows Vista上运行PHP 5.3.1。

这些是我得到的问题:

file_exists('C:/wamp/www/park_factor_network/system/application/shared/config/language.php') 

返回TRUE

 is_readable('system/application/shared/config/language.php') 

返回TRUE

 $fp = fopen('C:/wamp/www/park_factor_network/system/application/shared/config/language.php','r'); $contents = fread($fp, filesize('C:/wamp/www/park_factor_network/system/application/shared/config/language.php')); 

返回一个有效的文件资源并将其存储到$ contents中

然而:

 require_once('system/application/shared/config/database.php') or die("Cannot Include Language Config"); require_once('C:/wamp/www/park_factor_network/system/application/shared/config/language.php') or die("Cannot Include Language Config"); 

返回:

 Fatal error: require_once() [function.require]: Failed opening required '1' (include_path='.;C:\php5\pear') in C:\wamp\www\park_factor_network\system\application\shared\hooks\select_language.php on line 25 

C:\ wamp \ www \ park_factor_network \ system \ application \ news_site \ hooks是C:\ wamp \ www \ park_factor_network \ system \ application \ shared \ hook的目录结

我只在从框架中某个位置访问这个文件时遇到这个问题,但是这是一个直接包含还是要求它不应该受到这个影响,只有PHP? 如果我尝试在我的设置中的任何其他地方包含文件,它会加载正常。

Solutions Collecting From Web of "require_once和include_once不能正确parsing文件"

require_once是一个语言结构。 这不是一个功能,也没有返回值。

文件名参数的括号是可选的。 这似乎意味着在这一行:

 require_once('system/application/shared/config/database.php') or die("Cannot Include Language Config"); 

整个表达

 ('system/application/shared/config/database.php') or die("Cannot Include Language Config"); 

被评估(返回1 )并用作文件名参数。 1 ,显然不存在。

你正在做的事情并不是真正意义上的,因为在加载文件失败时include不会返回falserequire_once()将终止脚本的执行。 如果您在生产环境中关心错误报告的切换,您可以轻松地使用PHP致命错误来告诉您文件不存在(而不是您自定义的die() )。

如果您需要正常退出脚本,我会在语句前执行file_exists调用,在执行失败时执行die()

 $file = 'system/application/shared/config/database.php'; if ((!is_file($file)) or(!is_readable($file))) die("Cannot Include Language Config"); require_once('system/application/shared/config/database.php');