reply at the bottom ...
(Karl Pflästerer) wrote:
> Hi
> let's say we have the follwing directory structure:
> directory test, with to subdirectories: a and b; both have ssi
> subdirectory; a has also a subdirectory c with an index.php file in it
> and in b we habe a symbolic link to a/c.
>
> On the shell it looks like this:
> ,----
> | /htdocs/test>ls -gG *
> | a:
> | total 8
> | drwxr-xr-x 2 4096 Jan 4 20:55 c
> | drwxr-xr-x 2 4096 Jan 4 20:51 ssi
> |
> | b:
> | total 4
> | lrwxrwxrwx 1 6 Jan 4 20:53 c -> ../a/c
> | drwxr-xr-x 2 4096 Jan 4 20:53 ssi
> | ~/htdocs/test>cat a/ssi/a.inc
> | In directory a
> |
> | ~/htdocs/test>cat b/ssi/a.inc
> | In directory b
> `----
>
> As you see whe have an a.inc in each ssi. If we call now the index.php
> which does nothing more than to:
> include('../ssi/a.inc')
> what would you expect to read if you called b/c/index.php? I expected to
> read 'In directory b' but I read 'In directory a'.
>
> ,----
> | ~/htdocs/test>(cd a/c && php -f index.php )
> | In directory a
> |
> |
> | ~/htdocs/test>(cd b/c && php -f index.php )
> | In directory a
> `----
>
> In my opinion include() should respect symlinks to directories and not
> dereference them before finding the file to include. Or am I wrong here?
I have tested using your exact description and get the result, you can
be fairly certain this is not something specific to your server/machine.
I would tend to agree with your premise - but the php devs may have
decided against this behaviour on purpose.
although I must also say it's a rather convoluted setup, then again you may
have a very good/neat reason for wanting to setup a directory akin to
your example.
because I was curious I tried the following, namely creating a subdir 'd'
in each of dirs 'a' and 'b' and creating the index.php in 'a/d/' a then
symlinking
'a/d/index.php' to 'b/d/index.php' and then running the same tests using the 'd'
subdirs .... and guess what the correct [according to your expectation/opinion]
'ssi/a/inc' file was included
I would suggest maybe asking the [EMAIL PROTECTED] mailing list
as to whether they consider this a bug - and then file a bug report
if asked.
I might suggest also adding the following 2 lines to your test
index.php - which might provide a little more insight:
echo "the current working directory is ",getcwd(),"\n";
echo "I am the index file, my name is ",__FILE__,"\n";
additionally I changed the contents of your 'a.inc' files to the following:
<?php echo "I'm an included file, my name is ",__FILE__,"\n";
---------------
my conclusion:
no real answers, one possible way to workaround the problem,
possibly requires a little php-dev input.
> The PHP version is 5.1.6 (will soon be updated).
>
>
> KP
>
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php