PHP realpath ('./ models') возвращает "" или ноль? - PullRequest
1 голос
/ 16 декабря 2010

Когда я пытаюсь

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

Ответы [ 2 ]

3 голосов
/ 16 декабря 2010

Согласно выводу, который вы разместили, ваша структура каталогов выглядит следующим образом:

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 голосов
/ 16 декабря 2010

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

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

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

public
    somefile.php
application
    models
...