1

やってみると

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
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 Frameworkを使用すると、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 に答える