crgod 发表于 2009-8-14 00:06:12

ci中BASEPATH问题

刚发现了个问题,假如目录结构如下:
e:\ci\system
在默认情况下,BASEPATH返回的路径是e:\ci/system
分析原因:
e:\ci\index有如下代码:

$system_folder = "system";
if (strpos($system_folder, '/') === FALSE)
{
if (function_exists('realpath') AND @realpath(dirname(__FILE__)) !== FALSE)
{
$system_folder = realpath(dirname(__FILE__)).'/'.$system_folder;
}
}
else
{
// Swap directory separators to Unix style for consistency
$system_folder = str_replace("\\", "/", $system_folder);
}

将其改为:

$system_folder = "system";
if (strpos($system_folder, '/') === FALSE)
{
if (function_exists('realpath') AND @realpath(dirname(__FILE__)) !== FALSE)
{
$system_folder = realpath(dirname(__FILE__)).'/'.$system_folder;
}
}
// Swap directory separators to Unix style for consistency
$system_folder = str_replace("\\", "/", $system_folder);

后便可返回正确结果:
e:/ci/system
不知道自己说的对不对,请各位发表下看法。

Hex 发表于 2009-8-14 00:55:36

对于 PHP 来说正斜杠和反斜杠无所谓吧,所以这里应该不会造成麻烦。
其实在 linux 下就无此问题了。

visvoy 发表于 2009-8-14 03:08:07

无所谓的

crgod 发表于 2009-8-14 09:22:52

:),但是我要include的时候,写绝对路径,用这个就不行了。
页: [1]
查看完整版本: ci中BASEPATH问题