понимание относительных и абсолютных путей - PullRequest
0 голосов
/ 19 февраля 2011

Интересно, почему php постоянно говорит мне, что файл не существует, когда он существует.

Это мой код и ошибка

    require_once('/book/admin/bin/class/db.class.php');

Ошибка и трассировка стека

   Warning: require_once(/book/admin/bin/class/db.class.php) [function.require-once]: failed to open stream: No such file or directory in C:\wamp\www\book\forms\add.php on line 3
    Call Stack
    #   Time    Memory  Function    Location
    1   0.1479  408440  {main}( )   ..\add.php:0

Это часто случается, и я хочу исправить эту досадную повторяющуюся проблему.Есть ли способ настроить мой веб-сервер для чтения из корня сайта, как я это тоже спрашиваю?Или я неправильно понимаю, что происходит.

Так выглядит структура каталогов.

с использованием сервера wamp

c:\wamp\www\book <- my site root
c:\wamp\www\book\forms <- where add.php is located
c:\wamp\www\book\admin\bin\class\db.class.php

Почему я не могу использовать filepath в качестве "/ book/ bin / "

Спасибо, C

1 Ответ

1 голос
/ 19 февраля 2011

Абсолютные пути в Windows начинаются с буквы диска. Вы можете использовать

require_once 'c:\wamp\www\book\admin\bin\class\db.class.php';

или вы можете использовать относительный путь.

Чтобы узнать, по какому пути вы «начинаете», используйте getcwd (); Вероятно, это каталог, в котором «запускается» скрипт, например каталог, в котором находится index.php.

echo getcwd();

Вы можете запросить файлы, относящиеся к этому каталогу.

Тем не менее, я предлагаю вам установить постоянную APPLICATION_DIR или что-то в этом роде и создать ссылки из этого.

define('APPLICATION_DIR', 'c:\wamp\www\book');
require_once APPLICATION_DIR.'\admin\bin\class\db.class.php';
...