У меня проблема. Я хочу использовать локальный сервер (WAMP) и онлайн-сервер (000webhost) одновременно.
Теперь проблема с моими путями к файлам. Я не могу использовать нормальные пути, такие как (../contact.php), потому что я использую php include-файлы, и тогда путь будет другим, потому что я включаю файл на весь сайт.
Теперь я хотел использовать абсолютные пути, такие как (/main/include/header.inc.php)
Но корневая папка на онлайн-сервере и локальном сервере отличается, поэтому это тоже не сработает.
Есть ли какие-либо решения, которые я могу использовать?
Jelmer
Установить константу корневого веб-каталога ROOT
что вы можете использовать для загрузки файловых путей. Для каждого сервера установите соответствующий путь. Удостоверьтесь, что загружается в начале первого попадания файла для каждого запроса.
<?php
define('ROOT', `/var/www/html/site`);
...
Теперь загрузите ваши файлы с постоянной
include ROOT . '/directory/file.php';
Очевидно, установить постоянные разные для каждого сервера.
Вы также можете поместить свой define () в оператор if.
<?php
if($_SERVER['SERVER_NAME'] === 'localhost'){
define('ROOT','/wamp/dir/'); //obviously not your actual dir
}else{
define('ROOT','/online/dir/'); //obviously not your actual dir
}
ОБНОВИТЬ
Лучшей идеей может быть использование переменных среды вместо conts.
Установка CONST на каждой странице немного утомительна. Я нашел этот пост, который объясняет, как установить переменную окружения в .htaccess. таким образом, нам нужно только установить его в одном месте и получить к нему доступ во всех файлах.
например:
//.htaccess
SetEnv ROOT /var_www/html/site/
Теперь я могу получить это значение во всех моих файлах .php:
<?php
include getenv('ROOT'); . '/directory/file.php';
кредит:
Других решений пока нет …