PHP 4.0 Bug #9673 Updated: Relative paths in require(), require_once(), include(), include_once()

From: Date: Thu, 15 Mar 2001 14:08:12 +0000
Subject: PHP 4.0 Bug #9673 Updated: Relative paths in require(), require_once(), include(), include_once()
Groups: php.dev 
Request: Send a blank email to php-dev+get-48982@lists.php.net to get a copy of this message
ID: 9673 Updated by: stas Reported By: vvo@geocities.com Old-Status: Open Status: Analyzed Bug Type: Scripting Engine problem Assigned To: Comments: First, PHP include() is in no way related or was promised to relate to C preprocessor directives, so no wonder it behaves differently. Now, all relative pathes are resolved against the current directory of the including script (which is the directory where it's located). This is a known issue. Use include_pathes in the meantime. Previous Comments: --------------------------------------------------------------------------- [2001-03-10 16:45:48] vvo@geocities.com Here is an example of how relative paths are currently resolved with cascading inclusions (command line is 'php /home/joe/a.php'): File '/home/joe/a.php': <?php # this include works as expected, # locating '/home/joe/include/b.inc' include_once( 'include/b.inc' ); ?> File '/home/joe/include/b.inc': <?php # this include will assume '/home/joe/c.inc', but # not '/home/joe/include/c.inc', as one may expect =( include_once( 'c.inc' ); ?> File '/home/joe/include/c.inc': <?php echo 'hello'; ?> The way all four functions [require(), require_once(), include(), include_once()] resolve relative paths is counter-intuitive and unproductive with large directory structures, because some trickery is required to fix this problem. Not to mention that it hurts to see a different behavior from C-preprocessor #include directives. If you don't believe me, then see comments to the include() function... --------------------------------------------------------------------------- ATTENTION! Do NOT reply to this email! To reply, use the web interface found at http://bugs.php.net/?id=9673&edit=2

« previous php.dev (#48982) next »