- set_include_path
- Parameters
- Return Values
- Examples
- See Also
- User Contributed Notes 1 note
- Пути для подключаемых файлов с помощью директивы include_path.
- Setting the PHP include path
- Method #1: Use the PHP Selector in cPanel
- Method #2: Use a custom php.ini file
- Method #3: Use the set_include_path() function
- Method #4: Use the .htaccess file
- More Information
- Article Details
- Other Articles in This Category
- Related Articles
- Grow Your Web Business
set_include_path
Sets the include_path configuration option for the duration of the script.
Parameters
Return Values
Returns the old include_path on success or false on failure.
Examples
Example #1 set_include_path() example
// Or using ini_set()
ini_set ( ‘include_path’ , ‘/usr/lib/pear’ );
?>
Example #2 Adding to the include path
Making use of the PATH_SEPARATOR constant, it is possible to extend the include path regardless of the operating system.
In this example we add /usr/lib/pear to the end of the existing include_path .
See Also
- ini_set() — Sets the value of a configuration option
- get_include_path() — Gets the current include_path configuration option
- restore_include_path() — Restores the value of the include_path configuration option
- include — include
User Contributed Notes 1 note
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.
- PHP Options/Info Functions
- 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
- gc_status
- get_cfg_var
- get_current_user
- get_defined_constants
- get_extension_funcs
- get_include_path
- get_included_files
- get_loaded_extensions
- get_required_files
- get_resources
- getenv
- getlastmod
- getmygid
- getmyinode
- getmypid
- getmyuid
- getopt
- getrusage
- ini_alter
- ini_get_all
- ini_get
- ini_parse_quantity
- ini_restore
- ini_set
- memory_get_peak_usage
- memory_get_usage
- memory_reset_peak_usage
- php_ini_loaded_file
- php_ini_scanned_files
- php_sapi_name
- php_uname
- phpcredits
- phpinfo
- phpversion
- putenv
- set_include_path
- set_time_limit
- sys_get_temp_dir
- version_compare
- zend_thread_id
- zend_version
- get_magic_quotes_gpc
- get_magic_quotes_runtime
- restore_include_path
Пути для подключаемых файлов с помощью директивы 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 (;)) возникают проблемы при отладке скриптов на локальной машине)Setting the PHP include path
This article describes several methods for setting the include path in PHP. By using include paths, you can centralize code that your web site frequently uses. Additionally, some features, such as PEAR, require you to set the include path so PHP can locate the appropriate files.
You should create the include directory at the username directory level (that is, one level above the public_html directory). This ensures that sensitive files are not in the public_html directory, which anyone can access.
Method #1: Use the PHP Selector in cPanel
If your hosting account includes the cPanel PHP Selector, this is the easiest way to change the include path. To do this, follow these steps:
- In the SOFTWARE section of the cPanel home screen, click Select PHP Version :
- On the PHP Selector page, click the Options tab:
- Under PHP Options , scroll down to the include_path option:
- In the text box, type the include path.
You can separate multiple directories with a colon. For example, to specify the current directory (.) and the /home/username directory in the include path, type .:/home/username .
Method #2: Use a custom php.ini file
You can use a custom php.ini file to specify the include path. If you have not already set up a custom php.ini file, please read this article before you proceed.
To set the include path using a custom php.ini file, follow these steps:
- Open the php.ini file in an editor. You can do this by logging into your account over SSH, or by using the cPanel File Manager.
- Add the following line to the php.ini file. Replace username with your A2 Hosting username, and replace include_directory with the include directory’s name:
include_path variable">username/include_directory"
Method #3: Use the set_include_path() function
Instead of setting the include path globally in a configuration file, you can set the path directly in a script file. To do this, you use the set_include_path() function.
When you set the include path using this method, it is only effective for the duration of the script’s execution. The include path that you specify does not affect any other running scripts.
The following sample code demonstrates how to set the include path using the set_include_path() function. Replace username with your A2 Hosting username:
Method #4: Use the .htaccess file
A few of our VPS and dedicated servers use Apache modules instead of CGI binaries to run PHP. If your server uses an Apache module to run PHP, you can modify the .htaccess file in your web site’s document root directory.
To set the include path using the .htaccess file, follow these steps:
- Open the .htaccess file in an editor. You can do this by logging into your account over SSH, or by using the cPanel File Manager.
- Add the following line to the .htaccess file. Replace path with the include directory’s path:
php_value include_path ".:/path"
More Information
- For more information about the include_path directive in php.ini files, please visit http://php.net/manual/en/ini.core.php.
- For more information about the set_include_path() function, please visit http://php.net/manual/en/function.set-include-path.php.
Article Details
Other Articles in This Category
- What is PHP?
- PHP script basics
- Viewing PHP settings
- Changing PHP settings and versions
- Custom php.ini files
- Using php.ini directives
- Custom .htaccess files for PHP settings
- Using PHP directives in custom .htaccess files
- Run PHP scripts from cron jobs
- Using PHP to send e-mail messages
- PHP include paths
- PEAR packages
- Determining if a PHP function is available
- ‘500 Internal Server Error’ while running PHP
- ‘String could not be parsed as XML’ error message in PHP
- Using the Exif extension in PHP
- Common issues after PHP upgrade
- Using a custom php.ini file for cPanel cron jobs
- Using PHP sessions
- ionCube PHP Loader support
- Specifying the MySQL character set in PHP
- ‘Unable to allocate memory for pool’ error message in PHP
- Optimizing Symfony using APC
- Using the internationalization extension in PHP
- Installing PHP composer
- Determining if APC is installed on a server
- Using the MailChimp API with PHP
- ‘Allowed memory size exhausted’ error message in PHP
- Using ionCube Loader with different PHP versions
- Enabling PHP opcode caching
- Sending e-mail with PHPMailer
- Hardening PHP 7 and earlier versions
- Custom PHP settings per directory with .user.ini files
- ionCube PHP Loader unavailable on PHP 8.0
- Changing the PHP version for a specific directory
Related Articles
Grow Your Web Business
Subscribe to receive weekly cutting edge tips, strategies, and news you need to grow your web business.
No charge. Unsubscribe anytime.
Did you find this article helpful? Then you’ll love our support. Experience the A2 Hosting difference today and get a pre-secured, pre-optimized website. Check out our web hosting plans today.
Hosting