用户
 找回密码
 入住 CI 中国社区
搜索
查看: 6286|回复: 3
收起左侧

[讨论/交流] ci中BASEPATH问题

[复制链接]
发表于 2009-8-14 00:06:12 | 显示全部楼层 |阅读模式
刚发现了个问题,假如目录结构如下:
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
不知道自己说的对不对,请各位发表下看法。
发表于 2009-8-14 00:55:36 | 显示全部楼层
对于 PHP 来说正斜杠和反斜杠无所谓吧,所以这里应该不会造成麻烦。
其实在 linux 下就无此问题了。
发表于 2009-8-14 03:08:07 | 显示全部楼层
无所谓的
 楼主| 发表于 2009-8-14 09:22:52 | 显示全部楼层
:),但是我要include的时候,写绝对路径,用这个就不行了。

本版积分规则