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

search for in the

set_magic_quotes_runtime> <restore_include_path
Last updated: Fri, 06 Nov 2009

view this page in

set_include_path

(PHP 4 >= 4.3.0, PHP 5)

set_include_pathinclude_path 設定オプションをセットする

説明

string set_include_path ( string $new_include_path )

include_path 設定オプションの値を、このスクリプト内でだけ変更します。

パラメータ

new_include_path

include_path の新しい値。

返り値

成功した場合に元の include_path の値、失敗した場合に FALSE を返します。

例1 set_include_path() の例

<?php
// PHP 4.3.0 以降で動作します
set_include_path('/inc');

// すべてのバージョンの PHP で動作します
ini_set('include_path''/inc');
?>

例2 include path の追加

PATH_SEPARATOR 定数を利用することで、 オペレーティングシステムに依存せずに include path を追加することが可能です。

この例では、既存の include_path の最後に /usr/lib/pear を追加します。

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

参考



set_magic_quotes_runtime> <restore_include_path
Last updated: Fri, 06 Nov 2009
 
add a note add a note User Contributed Notes
set_include_path
parks at vecinc dot com
27-Jul-2009 06:44
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.
ChanibaL.net
08-Jan-2009 01:21
The files are included in order of the inclusion path, in this example, the directory structure is as follows:
.
|-- index.php
|-- t1
|   |-- a
|   `-- b
`-- t2
    |-- b
    `-- c

<?php

set_include_path
('t1'.PATH_SEPARATOR.'t2');

include
'a'// includes from T1
include 'b'// includes from T1
include 'c'// includes from T2

?>

Note that the include path affects only include/require functions.

<?php

var_dump
(file_exists('a'));  // false
var_dump(fopen('b', 'r'));  // file not found

?>
ricardo dot ferro at gmail dot com
14-May-2008 06: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));
    }
}

?>
chris-r3i
06-Mar-2007 10:35
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
koenig at electronova dot net
02-Oct-2006 04: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 01: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 03: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 11: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, 06 Nov 2009
 
 
show source | credits | stats | sitemap | contact | advertising | mirror sites