Intereting Posts
Как преобразовать строку с числами и пробелами в int Использование Office Word для чтения файлов doc с помощью PHP php email – как избежать почты, попавшей в спам-бокс HTML / PHP, выбирая значение из раскрывающегося меню и извлекая связанную строку и вывешивая все данные из этой строки MongoDB: запрос нескольких коллекций с двумя запросами? Вычитайте дату и время с текущей даты и времени, чтобы найти возраст в PHP php-код для создания нескольких строк с настраиваемым кодом PHP REST Клиенты Как вы используете библиотеку PHP OpenPGP? Войдите в файл через PHP или войдите в базу данных MySQL – что быстрее? Каков наилучший способ написать код модели в Codeigniter Как следует преобразовывать IP2 в преобразованные IP-адреса в MySQL? Как отключить синтаксис командной строки в Doxygen Якорные теги для обычного текста в содержимом Путаница между массивом и объектами в Laravel

PHP включает файл в webroot из файла вне webroot

У меня есть php-файл за пределами моего веб-сайта, в который я хочу включить файл, находящийся внутри веб-узла.

папка вне webroot
-> php-файл, в который я хочу включить
Webroot
-> файл для включения

Поэтому мне нужно идти по одному каталогу, но это не работает:

include('../webroot/file-to-include.php'); 

Включить полный путь также не работает:

 include('home/xx/xx/domains/mydomain/webroot/file-to-include.php'); 

Как я могу это сделать?

Полный путь должен быть:

 include('/home/xx/xx/domains/mydomain/webroot/file-to-include.php'); 

Или вы должны установить путь следующим образом:

 include(__DIR__ . '/../webroot/file-to-include.php'); // php version >= 5.3 include(dirname(__FILE__) . '/../webroot/file-to-include.php'); // php version < 5.3 

Попробуйте добавить конечную косую черту в полный путь, чтобы она выглядела как

include('/home/xx/xx/domains/mydomain/webroot/file-to-include.php');

В противном случае он будет интерпретироваться как относительный путь.

Вы также можете попытаться изменить директорию в webroot и посмотреть, работает ли это – для целей отладки:

 chdir("/home/xx/xx/domains/mydomain/webroot"); include "your_file.php"; 

Имейте это в общем файле, который будет использоваться всеми вашими php-источниками вне webroot:

 <?php define('PATH_TO_WEBROOT', '/home/xx/xx/domains/mydomain/webroot'); 

А затем используйте следующие, чтобы включить файлы.

 <?php include (PATH_TO_WEBROOT.'/file-to-include.php'); 

Если местоположение вашего веб-сайта изменится, вам нужно будет только изменить его в своей базе кода.

Вы можете настроить php для автоматического добавления файла к всем вашим скриптам, установив директиву auto_prepend_file . Этот файл может содержать, PATH_TO_WEBROOT константу PATH_TO_WEBROOT или require_once файл, который содержит его. Этот параметр может быть выполнен для каждого домена или для каждого узла (см. Документацию ini sections ).

Кроме того, рассмотрите возможность использования функции автозагрузки, если вы активно используете классы.

Я поместил защищенные данные в файл с именем conn.txt ,

Изображение корневого файла из FileZilla

и затем я использовал следующую команду PHP:

 $DbInfoFile = "../conn.txt"; 

Это должно работать

 $_SERVER['DOCUMENT_ROOT']/home/xx/xx/domains/mydomain/webroot/file-to-include.php 

И убедитесь, что у вас есть доступ к этому уровню.