PHP
downloads | documentation | faq | getting help | mailing lists | reporting bugs | php.net sites | links | conferences | my php.net

search for in the

set_magic_quotes_runtime> <restore_include_path
Last updated: Fri, 27 Jun 2008

view this page in

set_include_path

(PHP 4 >= 4.3.0, PHP 5)

set_include_path — Sets the include_path configuration option

Description

string set_include_path ( string $new_include_path )

Sets the include_path configuration option for the duration of the script.

Parameters

new_include_path

The new value for the include_path

Return Values

Returns the old include_path on success or FALSE on failure.

Examples

Example #1 set_include_path() example

<?php
// Works as of PHP 4.3.0
set_include_path('/inc');

// Works in all PHP versions
ini_set('include_path''/inc');
?>

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.

<?php
$path 
'/usr/lib/pear';
set_include_path(get_include_path() . PATH_SEPARATOR $path);
?>



set_magic_quotes_runtime> <restore_include_path
Last updated: Fri, 27 Jun 2008
 
add a note add a note User Contributed Notes
set_include_path
ricardo dot ferro at gmail dot com
14-May-2008 03:16
Two functions to help:

<?php

function add_include_path ($path)
{
    foreach (
func_get_args() AS $path)
    {
        if (!
file_exists($path) OR (file_exists($path) && filetype($path) !== 'dir'))
        {
           
trigger_error("Include path '{$path}' not exists", E_USER_WARNING);
            continue;
        }
       
       
$paths = explode(PATH_SEPARATOR, get_include_path());
       
        if (
array_search($path, $paths) === false)
           
array_push($paths, $path);
       
       
set_include_path(implode(PATH_SEPARATOR, $paths));
    }
}

function
remove_include_path ($path)
{
    foreach (
func_get_args() AS $path)
    {
       
$paths = explode(PATH_SEPARATOR, get_include_path());
       
        if ((
$k = array_search($path, $paths)) !== false)
            unset(
$paths[$k]);
        else
            continue;
       
        if (!
count($paths))
        {
           
trigger_error("Include path '{$path}' can not be removed because it is the only", E_USER_NOTICE);
            continue;
        }
       
       
set_include_path(implode(PATH_SEPARATOR, $paths));
    }
}

?>
Anonymous
17-Dec-2007 04:34
a hint to the note of anonymous and in general: you can use relative paths instead of such a complex construct, sothat you do not need to use values from out of your scripts boundaries. those values you should at best never trust.
Anonymous
05-Dec-2007 10:59
If you are using a CGI install you cannot use the htaccess solution. You could try something like this:

$user = preg_match('/\/([\w]+)\/www\//', __FILE__, $matches);
$user = $matches[1];
$path = "/u/$user/includes";
set_include_path(get_include_path() . PATH_SEPARATOR . $path);
chris-r3i
06-Mar-2007 07:35
Can be useful to check the value of the constant PATH_SEPARATOR.

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
huuanito at hotmail dot com
15-Jan-2007 10:18
Just a note on koenig at electronova dot net's post:
to be OS independent you'd use  '.PATH_SEPARATOR.'
in place of :
marc dot jaeger at ti dot ch
04-Dec-2006 07:10
Not shure if it is possible to use wildchars when setting include_path in php.ini [for example include_path=.:/usr/lib/php:/home/*/includes ].
koenig at electronova dot net
02-Oct-2006 01:24
You can also add several paths in one set_include_path separating them by ':'.
ex : set_include_path('/home/mysite/includes1:/home/mysite/includes2')
junya at xs4all dot nl
28-Jan-2005 10:41
When you use .htaccess to set the include path, don't forget Apache directive 'AllowOverride Options' or 'AllowOverride All' is also needed.
df a t dougfelton d o t c o m
25-Jan-2005 12:37
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.
r dot s dot goldsmith at far-blue dot co dot uk
08-Dec-2004 08:23
If you want to set the paths php uses to find included files on a directory by directory level, you can do so in Apache's .htaccess file. Add the line:

php_value include_path  "<first path to look>:<second path>:<etc>:."

to the .htaccess file. This will replace any paths set in your environment or the php.ini file so remember to include the path to php's own libraries as, usually, the first option!

V.useful tip given to me by the 'php guy' at Edinburgh Uni's Computing Support.

set_magic_quotes_runtime> <restore_include_path
Last updated: Fri, 27 Jun 2008
 
 
show source | credits | sitemap | contact | advertising | mirror sites