Вопрос

В настоящее время на моем сайте я использую такие операторы, как:

include 'head.php';
include '../head.php';
include '../../head.php';

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

я убеждена .htaccess это решение, но я не уверен, как его реализовать. Если я вставлю:

php_value include_path "public/html/root"

... я теряю остальные пути (/usr/lib/php, так далее). Я наивно попробовал:

php_value include_path $include_path . "(path)"

Но, конечно, это не сработало. Как я мог бы сдать или добавить один путь к этому списку с .htaccess?

Это было полезно?

Решение

Если вы не можете редактировать php.ini Файл, вы можете добавить

set_include_path(get_include_path() . PATH_SEPARATOR . $path_to_add);

перед вашим include заявления.

Однако, если у вас есть include или же require Проблемы, это, вероятно, запах кода. Лучшее решение было бы хороший объектно-ориентированный дизайн с хорошим __autoload функция

Другие советы

Создать в подводных режиссерах файл .htaccess с содержимым

php_value include_path '../../includes'

или что -то еще include_path подходит для этого каталога.

Преимущества:

  1. Нет уродливого взлома с множественным включает в себя разной глубины. Просто include 'head.php'.
  2. Нет зависимости от редактирования php.ini.
  3. Не нужно использовать set_include_path() Прежде чем включать.
  4. Нет зависимости от включения констант, как include INCLUDE_PATH . 'head.php'.

Цена, чтобы заплатить:

Вы засоряете свои подводные директории, каждый с файлом .htaccess.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top