当我尝试
时realpath('./')
我得到“D:\ Projects \ Tickle \ public”
但是当我尝试
时realpath('./models'); // or './models/'
我得到“”或null。这是为什么?奇怪的是,当我尝试
时realpath('../application/models');
我得到“D:\ Projects \ Tickle \ application \ models”,这是正确的
更新
我的目录结构如下所示(我正在使用Zend Framework)
/application
/models
/controllers
/views
/configs
bootstrap.php <-- this is where I am
答案 0 :(得分: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 Framework,APPLICATION_PATH
常量定义为realpath(dirname(__FILE__) . '/../application')
(在public/index.php
中)。
答案 1 :(得分:2)
请尝试以下操作,看看是否有机会获得false
:
var_dump(realpath('./models'));
如果我没弄错,你的树结构如下所示,上面编码的文件是public
,对吗?在这种情况下,您实际上是在尝试获得public/models
的实际路径。
public
somefile.php
application
models