ID: 36251 Updated by: [EMAIL PROTECTED] Reported By: john at castlecomm dot com -Status: Open +Status: Bogus Bug Type: Unknown/Other Function Operating System: Unix/Linux PHP Version: 4.4.2 New Comment:
Please do not submit the same bug more than once. An existing bug report already describes this very problem. Even if you feel that your issue is somewhat different, the resolution is likely to be the same. Thank you for your interest in PHP. Duplicate of #36249 Previous Comments: ------------------------------------------------------------------------ [2006-02-01 20:57:56] john at castlecomm dot com Description: ------------ Tony, I tried to reply to the original ticket but your system is not remembering my password, 's00per' correctly. I am certain I used that, because I pasted it in from notepad after saving it in a file with no newlines. Thank you for your help, but if your answer is correct, then my scripts should have worked. You said: "Files for including are first looked in include_path relative to the current working directory and then in include_path relative to the directory of current script." The current working directory and script in my example was (PROTECTED) I appended to the include_path ./ws This means that the include_once '../inc/incfile.php' which happened inside of ws/wsfile.php should have been looked at from the perspective of (PROTECTED)/ws at least once but it wasn't. Did you look at the examples I provided you? --Original Message-- Including a file using a relative path after INI SETTING the include_path does not work. Setting the include_path works, but but PHP does not use it correctly. This is a major flaw in the include logic. A full detailed example is listed under the "Reproduce code" section. Reproduce code: --------------- [john@(PROTECTED) error]$ cat mainfile.php <? $include_path = ini_get('include_path'); $include_path .= ':./ws:'; //this doesn't even work with an absolute path ini_set('include_path', $include_path); include 'ws/wsfile.php'; print "Hi! I'm mainfile!\n"; ?> [john@(PROTECTED) error]$ cat ws/wsfile.php <? include_once '../inc/incfile.php'; print "Hi! I'm wsfile!\n"; ?> [john@(PROTECTED) error]$ cat inc/incfile.php <? print "Hi! I'm incfile!\n"; ?> [john@(PROTECTED) error]$ php mainfile.php Warning: main(../inc/incfile.php): failed to open stream: No such file or directory in /(PROTECTED)/john/error/ws/wsfile.php on line 2 Warning: main(): Failed opening '../inc/incfile.php' for inclusion (include_path='.:/usr/local/lib/php:./ws:') in /(PROTECTED)/john/error/ws/wsfile.php on line 2 Hi! I'm wsfile! Hi! I'm mainfile! Expected result: ---------------- Tony, Thank you for your help, but if your answer is correct, then my scripts should have worked. You said: "Files for including are first looked in include_path relative to the current working directory and then in include_path relative to the directory of current script." The current working directory and script in my example was (PROTECTED) I appended to the include_path ./ws This means that the include_once '../inc/incfile.php' which happened inside of ws/wsfile.php should have been looked at from the perspective of (PROTECTED)/ws at least once but it wasn't. Did you look at the examples I provided you? --Original Expected Result-- The INI SET works, but include_once, as well as the others, do not work correctly. It can't find the relatively included file...even though the INI include_path is set. The code should work because the include path has been set properly. Even the error output shows the right include path, but the include_once directive just fails. Actual result: -------------- [john@(PROTECTED) error]$ php mainfile.php Warning: main(../inc/incfile.php): failed to open stream: No such file or directory in /(PROTECTED)/john/error/ws/wsfile.php on line 2 Warning: main(): Failed opening '../inc/incfile.php' for inclusion (include_path='.:/usr/local/lib/php:./ws:') in /(PROTECTED)/john/error/ws/wsfile.php on line 2 Hi! I'm wsfile! Hi! I'm mainfile! ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=36251&edit=1