Измените include_path или добавьте каждый php-файл - PullRequest
0 голосов
/ 21 ноября 2010

У меня есть приложение, которое хранит некоторые данные в .php файлах в каталоге /library/, например. /library/config.php.

На моем старом хостинге library находился в пути включения, поэтому я смог сделать require('config.php') в любом месте без указания реального пути.

Есть ли возможность автоматически добавлять каждый файл .php для обновления пути включения?

Есть несколько обстоятельств:

  • приложение не следует шаблону фронтального контроллера
  • У меня нет доступа к php.ini
  • У меня нет прямого доступа к любому из каталогов, уже присутствующих в include_path
  • Я не могу использовать php_flag include_path
  • Я не могу использовать php_flag auto_prepend_file
  • некоторые файлы .php имеют свои собственные правила в .htaccess

Любой другой способ, кроме ctrl+H, и заменить <? на <? set_include_path…?

Edit:

То, что я ищу, будет примерно таким:

RewriteCond %{REQUEST_FILENAME}  !-F
RewriteCond %{REQUEST_FILENAME}  !-d
RewriteRule (^*\.php)$ /library/$1 [NC,L]

Ответы [ 2 ]

0 голосов
/ 21 ноября 2010

ini_set() тоже запрещено?Что также позволяет вам изменять include_path.

0 голосов
/ 21 ноября 2010

Добавьте set_include_path() вверху файла, где вам нужны файлы библиотеки для настройки пути включения во время выполнения (не нужно прикасаться к файлам php.ini или .htaccess).

set_include_path(dirname(__FILE__).'/library'.PATH_SEPARATOR.get_include_path());

Это добавляет путь вашей библиотеки к текущему пути включения и делает файлы там непосредственно доступными.Вам нужно настроить '/library', чтобы он соответствовал пути к вашей библиотеке (относительно местоположения текущего файла).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...