日期:2014-05-17  浏览次数:20746 次

php中require语句的文件路径会导致Apache.exe - 应用程序错误
被require的文件放在相同目录时用require( '1.php ');可以正常访问。但是把1.php放在上级目录中用require( '../1.php ');就会出错,APACHE服务器异常关闭。请问是什么问题啊?

---------------------------
Apache.exe   -   应用程序错误
---------------------------
应用程序发生异常   unknown   software   exception   (0xc00000fd),   位置为   0x77f8646f   。


要终止程序,请单击“确定”。
要调试程序,请单击“取消”。
---------------------------
确定       取消      
---------------------------


------解决方案--------------------

if (!function_exists( 'bugFixRequirePath '))
{
function bugFixRequirePath($newPath)
{
$stringPath = dirname(__FILE__);
if (strstr($stringPath, ": ")) $stringExplode = "\\ ";
else $stringExplode = "/ ";

$paths = explode($stringExplode,$stringPath);

$newPaths = explode( "/ ",$newPath);

if (count($newPaths) > 0)
{
for($i=0;$i <count($newPaths);$i++)
{
if ($newPaths[$i] == ".. ") array_pop($paths);
}

for($i=0;$i <count($newPaths);$i++)
{
if ($newPaths[$i] == ".. ") unset($newPaths[$i]);
}

reset($newPaths);

$stringNewPath = implode($stringExplode,$paths).
$stringExplode.implode($stringExplode,$newPaths);

return $stringNewPath;
}
}
}

require(bugFixRequirePath( "../1.php "));
搂住看看这个。
好像是有这个bug,php官方站点上有sample,4.1以后好像没这个问题,我这边没发现有什么问题