ID:               9673
 Comment by:       php at arantius dot cjb dot net
 Reported By:      vvo at geocities dot com
 Status:           Bogus
 Bug Type:         Scripting Engine problem
 Operating System: RedHat Linux 7.1
 PHP Version:      4.1.1
 New Comment:

I'm sure I can get around this, but things really would be nice if this
worked.  Situation is a very modular web site, with many files to be
included, some class definitions, and some other fuctions.  Off of the
root /, there is /classes and /plugins .  A file in /plugins is
included from a file in /, and depends on a file in /classes.  In other
words:

/main.php includes /plugin/driver.php
/plugin/driver.php includes /classes/Item.php

But, within /plugin/driver.php, the statement

require_once "../classes/Item.php" fails.


Previous Comments:
------------------------------------------------------------------------

[2002-06-07 20:36:57] [EMAIL PROTECTED]

Thank you for taking the time to report a problem with PHP.
Unfortunately your version of PHP is too old -- the problem
might already be fixed. Please download a new PHP
version from http://www.php.net/downloads.php

If you are able to reproduce the bug with one of the latest
versions of PHP, please change the PHP version on this bug report
to the version you tested and change the status back to "Open".
Again, thank you for your continued support of PHP.



------------------------------------------------------------------------

[2002-03-05 00:33:02] vvo at geocities dot com

I was happy for awhile, but eventually I noticed a problem with *some*
relative paths (in version 4.1.1). 

Say, there is the main script 'test.php' and two other files, 'a.inc'
and 'b.inc' (in subdirs):

File './test.php':
<?php
        require_once( 'include/a/a.inc' );
?>

File './include/a/a.inc':
<?php
        require_once( '../b.inc' );
        echo 'a.inc ';
?>

File './include/b.inc':
<?php
        echo 'b.inc ';
?>

Running 'test.php' fails with:

Fatal error: Failed opening required '../b.inc'
(include_path='.:/usr/local/lib/php') 
in /home/geeba/include/a/a.inc on line 2

This isn't intended, is it?
Thank you!

------------------------------------------------------------------------

[2001-07-16 12:07:02] [EMAIL PROTECTED]

include() (and the other functions in its family) will now also look in
the current executing file's directory, so this issue should be
resolved.

------------------------------------------------------------------------

[2001-03-15 10:09:07] vvo at geocities dot com

We are talking about all four functions here, not just include(). The
resemblance of require() to the #include directive, as documented:

<quote>The require() statement replaces itself with the specified file,
much like the C preprocessor's #include works.</quote>

If it's a "known issue", are there any plans to fix it?
Thanks.

------------------------------------------------------------------------

[2001-03-15 09:08:11] [EMAIL PROTECTED]

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.

------------------------------------------------------------------------

The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
    http://bugs.php.net/9673

-- 
Edit this bug report at http://bugs.php.net/?id=9673&edit=1

Reply via email to