2010-12-16 2 views
1

Когда я пытаюсьPHP realpath ('./ models') возвращает "" или null?

realpath('./') 

я получаю "D: \ Projects \ Тикл \ общественность"

Но когда я пытаюсь

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

я получаю "" или нуль. почему это? Странно то, что когда я пытаюсь

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

я получаю "D: \ Projects \ Тикл \ приложения \ модели", которая является правой

UPDATE

Моя структура каталогов выглядит, как показано ниже (Я использую Zend Framework)

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

Ваш текущий каталог не является «прикладным»? – 2010-12-16 13:41:36

+0

Каков ваш текущий каталог? – Gumbo 2010-12-16 13:42:58

+0

См. Обновление. Я в /application/bootstrap.php – 2010-12-16 14:26:21

ответ

3

По выходе вы в курсе, ваша структура каталогов, кажется, выглядит следующим образом:

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

Мы в foo.php. Используя realpath('./models');, вы ссылаетесь на D:\Projects\Tickle\public\models, которого нет.

UPDATE Если вы хотите получить файл (относительно текущего файла), вы должны использовать что-то вроде этого:

realpath(__DIR__ . '/models'); 

Или еще лучше (__FILE__ текущий файл вы находитесь) :

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

Использование Zend Framework, константа APPLICATION_PATH определяется как realpath(dirname(__FILE__) . '/../application')public/index.php).

2

Try следующий и посмотреть, если вы получаете false случайно:

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

Если я не ошибаюсь, ваша структура дерева, как показано ниже, и файл у вас есть выше кода является public, правильно? В этом случае вы фактически пытаетесь получить реальный путь от public/models.

public 
    somefile.php 
application 
    models 
Смежные вопросы