невозможно получить include (dirname (__ FILE__). «/dir/file.php»); работать

0

Хорошо, поэтому у меня проблема с одним из моих включений. Мой config.php включает файл user.php который находится в каталоге классов. Если я вызываю файл config.php из другого каталога, относительные пути нарушаются.

Я попытался использовать

include(dirname(__FILE__) . "/classes/user.php");

а также

include __DIR__ . '../classes/user.php'; 

вместо

include('../classes/user.php');

в моем файле config.php и он все равно дает мне ошибку файла или каталога. Он продолжает искать user.php в include/classes/user.php вместо того, чтобы подходить к каталогу. Я пробовал путь dirname как с ../ и без косой черты. Ничто не работает.

Чтобы уточнить, моя структура выглядит так:

-admin
-classes
--user.php
-css
-drop
--index.php
-img
-includes
--config.php
-js
index.php
etc.

Для config.php требуются классы /user.php. Я получаю проблему, когда пытаюсь включить config.php в файл drop/index.php. Он не может найти классы /user.php.

  • 0
    что вы получаете, когда вы var_dump(dirname(__FILE__) . "/classes/user.php") ?
  • 0
    Он возвращает это: string (49) "C: \ xampp \ htdocs \ darkerslate \ drop / classes / user.php"
Показать ещё 3 комментария
Теги:

2 ответа

1
Лучший ответ

Вы пытались добавить обратную косую черту перед двумя точками (..)? Как это

include(dirname(__FILE__) . "/../classes/user.php");

Просто хочу помочь тебе.

  • 0
    Это сделал это! Спасибо. Это всегда так просто, не так ли?
  • 0
    В любое время я использую Linux, и это происходит много раз, потому что система читает полный путь, как это /opt/lampp/htdocs/project/class../class.php, если я не добавляю косую черту перед двумя точками. Поэтому нам нужен правильный полный путь, например /opt/lampp/htdocs/project/class/../class.php
Показать ещё 2 комментария
0

Возможно, попробуйте что-то вроде этого:

include($_SERVER['SERVER_NAME'] . "/classes/user.php");

UPDATE, если ../ и выше не работает, попробуйте следующее:

 include(dirname(dirname(__FILE__)) . "/classes/user.php");
  • 0
    Я получаю это: Предупреждение: include (localhost / classes / user.php): не удалось открыть поток: нет такого файла или каталога в C: \ xampp \ htdocs \ darkerslate \ includes \ config.php в строке 35
  • 0
    Я вижу .. кстати, я также пытался ../ на моем местном окружении, и это работает.
Показать ещё 4 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню