You could download the pear files from the pear CVS to somewhere within your 
programs path. If your web files are in (using a linux 
example) /home/foo/public_html then just change to that directory and checkout 
the files from CVS. This also gives you the luxury of keeping the pear files 
uptodate yourself (cd pear; cvs update). Information on getting pear from the 
CVS can be found here http://www.onlamp.com/lpt/a/882 (scroll down).

Another option would be to keep everything they way it is and use a full path 
to the include files. You can set the include path in a main settings file 
somewhere:

define('DIR_PEAR', '/apache/php/pear');
include(DIR_PEAR . 'DB.php');

Of course you would need to have the settings file included in all your 
scripts (but this is a common thing for larger apps).

If you want it to dynamically switch depending on windows or linux, using full 
paths, you could try something like (taken from pear DB, if I remember right - 
using a shared settings file as well):
// try windows
define('ROOT_PATH_DELIMITER', 'C:');

define('SMART_PATH_DELIMITER', (substr(PHP_OS, 0, 3) == 'WIN') ? '\\' : '/' );
define('DIR_PEAR', ROOT_PATH_DELIMITER . SMART_PATH_DELIMITER . 'apache' . 
SMART_PATH_DELIMITER . 'php' . SMART_PATH_DELIMITER . 'pear');
include(DIR_PEAR . SMART_PATH_DELIMITER . 'DB.php');

Then the only thing you have to change from windows to linux is the 
ROOT_PATH_DELIMITER (comment it out). I did this quickly so not sure if it 
works. Play around - I'm sure you will find something you can work with.

OR you can manually set your include path at the start of your app:

ini_set('include_path', '.:..:../..:/apache/php/pear'); // searches 
through  ./foo.inc, ../foo.inc, ../../foo.inc, /apache/php/pear/foo.inc

good luck

Quoting Warren Vail <[EMAIL PROTECTED]>:

> 
> I know how to load extensions if they are not included in PHP.ini (dl
> function), but how do I gain access to PEAR?
> 
> I can see the directory /apache/php/pear/ on my test machine, but when I try
> to reference via
> 
> include_once("DB.php");
> 
> not found on include list error,,,,, can I dynamically change include list,
> and what kind of security hole would that represent?  my test machine is
> windows, and my production machine is Redhat Linux, so I need to find a way
> to gain access to pear in both environments.
> 
> Warren Vail
> [EMAIL PROTECTED]
> 
> 
> 
> -- 
> PHP General Mailing List (http://www.php.net/)
> To unsubscribe, visit: http://www.php.net/unsub.php
> 
> 



-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to