Пути для подключаемых файлов с помощью директивы include_path.
Чтобы была возможность указывать одинаковые пути к подключаемым файлам независимо от нахождения файла со скриптом, в котором этот путь нужно получить, можно указать этот путь в директиве include_path.
Например есть папка «includes», а в ней файлы для подключения. Задав необходимые параметры для include_path, из скрипта любого файла вашего сайта можно будет получить нужный файл этой папки просто прописав его имя: require_once ‘файл.расширение’.
include_path определяется в главном файле конфигурации php.ini. В ней указывается список директорий, в которых функции require, include, fopen(), file(), readfile() и file_get_contents() ищут файлы. Список директорий (папок) разделяется двоеточием в Unix или точкой с запятой в Windows.
Если вы используете сервер Apache. то директиву include_раth можете указать в глобальном файле конфигурации сервера (который обычно называется httpd.conf) или в файле конфигурации для конкретного каталога (который обычно называется .htaccess) воспользовавшись следующим синтаксисом:
php_value include_path ".:/usr/local/liЬ/php-libraries"
Если у вас нет прав доступа, необходимых для редактирования файла php.ini, или не хотите менять конфигурационный файл при переносах сайта — можете задать пути включения файлов, на время выполнения скрипта, прямо из сценария с помощью функции set_include_path().
Например нам нужно подключить файлы находящиеся в папке includes, которая в корне сайта:
$path = 'includes'; $result = set_include_path(get_include_path() . PATH_SEPARATOR . $path);
где $path – путь к нужной папке относительно точки входа (файла index.php)
Можно указать абсолютный путь:
$path = $_SERVER['DOCUMENT_ROOT']. '/includes';
. PATH_SEPARATOR . realpath(dirname(__FILE__) . '/../includes')
где realpath() — преобразует относительный путь в абсолютный.
Также можно указывать вложенную папку, например $path = ‘includes/folder’;
После этого, для подключения файлов, можно просто указывать их названия:
Вызвав get_include_path() мы добавили в начало списка данные, которые уже были в include_path,
потом идет разделитель и нужный путь.
С помощью установки пути в include_path, из какого бы файла и папки не вызывался нужный файл, путь не изменится.
Можно также использовать ini_set (одно и тоже):
// Работает с версии PHP 4.3.0 set_include_path('/usr/lib/pear'); // Работает во всех версиях PHP ini_set('include_path', '/usr/lib/pear');
set_include_path( get_include_path() . PATH_SEPARATOR . 'folder1' . PATH_SEPARATOR . 'folder2' . PATH_SEPARATOR . 'folder3'); spl_autoload_register( function( $class ) < include $class . '.php'; >);
Указывать директиву include_path в файле .htaccess не рекомендуется по следующим причинам:
— вы затрете пути, которые уже были в системе (например, каталог PEAR);
— при переносе сайта к другому хостеру придется изменять .htaccess, т.к. в директиве include_path указаны абсолютные пути к каталогам;
— из-за использования разных разделителей каталогов (в Unix (:), в Windows (;)) возникают проблемы при отладке скриптов на локальной машине)
Php — Include PATH (Search Path)
The include_path parameter specifies a list of directories where the:
Articles Related
Syntax
The format is like the system’s file PATH environment variable: a list of directories with the os path separator. ie
Set
Programmatically
set_include_path(get_include_path().PATH_SEPARATOR."/path/to/my/file");
ini_set('include_path', '/usr/lib/pear');
Ini
The value of the include path is defined in php.ini
;;;;;;;;;;;;;;;;;;;;;;;;; ; Paths and Directories ; ;;;;;;;;;;;;;;;;;;;;;;;;; ; UNIX: "/path1:/path2" include_path=D:\xampp\php\pear ; ; Windows: "\path1;\path2" ;include_path = ".;c:\php\includes" ; ; PHP's default setting for include_path is ".;/path/to/php/pear" ; http://php.net/include-path
Documentation / Reference
PEAR is a framework and distribution system for reusable PHP components. See The PEAR package manager can: install packages create new packages, manage a registry of installed packages, check.
Unit test Framwork Get the phar file for your php version. See Requirement Powershell bash Load from include_path. You need to set it for Idea.