set_include_path
(PHP 4 >= 4.3.0, PHP 5)
set_include_path — Устанавливает значение настройки конфигурации include_path
Описание
$new_include_path
)Задает значение настройки конфигурации include_path на время выполнения скрипта.
Возвращаемые значения
Возвращает старое значение include_path
в случае успеха. или FALSE
в случае возникновения ошибки.
Примеры
Пример #1 Пример использования set_include_path()
<?php
// Работает с версии PHP 4.3.0
set_include_path('/usr/lib/pear');
// Работает во всех версиях PHP
ini_set('include_path', '/usr/lib/pear');
?>
Пример #2 Составление более длинного пути include path
Используя константу PATH_SEPARATOR
, можно добавить
к пути вложенные директории независимо от операционной системы.
В этом примере мы добавим /usr/lib/pear в конец существующего пути include_path.
<?php
$path = '/usr/lib/pear';
set_include_path(get_include_path() . PATH_SEPARATOR . $path);
?>
Смотрите также
- ini_set() - Установка значения настройки конфигурации
- get_include_path() - Получение текущего значения настройки include_path
- restore_include_path() - Восстанавливает изначальное значение настройки конфигурации include_path
- include - include
- PHP Руководство
- Функции по категориям
- Индекс функций
- Справочник функций
- Изменение поведения PHP
- PHP Опции и Информация
- assert_options
- assert
- cli_get_process_title
- cli_set_process_title
- dl
- extension_loaded
- gc_collect_cycles
- gc_disable
- gc_enable
- gc_enabled
- gc_mem_caches
- get_cfg_var
- get_current_user
- get_defined_constants
- get_extension_funcs
- get_include_path
- get_included_files
- get_loaded_extensions
- get_magic_quotes_gpc
- get_magic_quotes_runtime
- get_required_files
- get_resources
- getenv
- getlastmod
- getmygid
- getmyinode
- getmypid
- getmyuid
- getopt
- getrusage
- ini_alter
- ini_get_all
- ini_get
- ini_restore
- ini_set
- magic_quotes_runtime
- main
- memory_get_peak_usage
- memory_get_usage
- php_ini_loaded_file
- php_ini_scanned_files
- php_logo_guid
- php_sapi_name
- php_uname
- phpcredits
- phpinfo
- phpversion
- putenv
- restore_include_path
- set_include_path
- set_magic_quotes_runtime
- set_time_limit
- sys_get_temp_dir
- version_compare
- zend_logo_guid
- zend_thread_id
- zend_version
Коментарии
In order to use .htaccess files to set the include path, PHP must be installed as an Apache module. If PHP is compiled as a CGI binary, you can set the include path in a custom php.ini file (if, for example, you're being hosted somewhere and don't have access to the main php.ini file. Note that custom php.ini files don't affect subdirectories in the way that .htaccess files do, so you'll need to put your custom php.ini file in any subdirectories as well.
You can also add several paths in one set_include_path separating them by ':'.
ex : set_include_path('/home/mysite/includes1:/home/mysite/includes2')
Can be useful to check the value of the constant PATH_SEPARATOR.
<?php
if ( ! defined( "PATH_SEPARATOR" ) ) {
if ( strpos( $_ENV[ "OS" ], "Win" ) !== false )
define( "PATH_SEPARATOR", ";" );
else define( "PATH_SEPARATOR", ":" );
}
?>
For older versions of php, PATH_SEPARATOR is not defined.
If it is so, we must check what kind of OS is on the web-server and define PATH_SEPARATOR properly
If you find that this function is failing for you, and you're not sure why, you may have set your php include path in your sites's conf file in Apache (this may be true of .htaccess as well)
So to get it to work, comment out any "php_value include_path" type lines in your Apache conf file, and you should be able to set it now in your php code.
If you want to include files with their absolute path without changing the current include path, you can use the magic constant __DIR__ . For example:
<?php include(__DIR__.'/file.php'); ?>
It is available since PHP 5.3.
It appears that relative paths are allowed:
set_include_path( '..' . DIRECTORY_SEPARATOR . 'source');
require_once( 'Foo.class.php');
An empty string as the include path has no effect. Setting it to PATH_SEPARATOR has the same effect as "."