неопределенная функция base_url()

#php #codeigniter

#php #codeigniter

Вопрос:

Почему эта строка не работает в constants.php :-

define('FILE_UPLOAD_VIRTUAL_DIR', base_url() . '/uploads/');

base_url() работает во всех представлениях. Тогда почему не в constants.php ?

Ответ №1:

Вероятно, потому, что constants.php включена до того, как библиотека, определяющая base_url() is.

Я не знаю CI, но посмотрите, есть ли какой-либо шанс определить константу на более позднем этапе выполнения программы. Эксперт CI, возможно, сможет рассказать вам более подробно, где именно.

Ответ №2:

Попробуйте это так:

 define('FILE_UPLOAD_VIRTUAL_DIR', $_SERVER['DOCUMENT_ROOT'] . '/uploads/');
  

если вы хотите определить путь к каталогу загрузки файла, вам не нужен URL, вам нужен path.

Комментарии:

1. Имейте в виду, что $_SERVER['DOCUMENT_ROOT'] это не даст вам того же результата, что base_url() (определенный в приложении config.php ) !

2. Да, это не совсем чистая практика. При создании приложения CI используйте функции CI.