1

当我尝试

realpath('./')

我得到“D:\Projects\Tickle\public”

但是当我尝试

realpath('./models'); // or './models/'

我得到“”或空值。这是为什么?奇怪的是,当我尝试

realpath('../application/models');

我得到“D:\Projects\Tickle\application\models”,这是正确的

更新

我的目录结构如下所示(我使用的是 Zend Framework)

/application
    /models
    /controllers
    /views
    /configs
    bootstrap.php  <-- this is where I am
4

2 回答 2

3

根据您发布的输出,您的目录结构看起来像这样:

D:\Projects\Tickle
    public
        foo.php
    application
        models

我们在foo.php。通过使用realpath('./models');你指的D:\Projects\Tickle\public\models是不存在的。

更新 如果你想得到一个文件(相对于当前文件),你应该使用这样的东西:

realpath(__DIR__ . '/models');

甚至更好(__FILE__是您所在的当前文件):

realpath(dirname(__FILE__) . '/models')

使用 Zend 框架,APPLICATION_PATH常量被定义为realpath(dirname(__FILE__) . '/../application')(in public/index.php)。

于 2010-12-16T13:43:53.757 回答
2

尝试以下,看看你是否false有机会:

var_dump(realpath('./models'));

如果我没记错的话,你的树形结构如下图所示,上面代码中的文件是public,对吗?在这种情况下,您实际上是在尝试获取public/models.

public
    somefile.php
application
    models
于 2010-12-16T13:41:46.933 回答