From: [EMAIL PROTECTED]
Operating system: HP-UX 11.0
PHP version: 4.1.2
PHP Bug Type: Scripting Engine problem
Bug description: when using include, __FILE__ prepends / to relative paths
Summary:
when using include, __FILE__ prepends / to relative paths
History:
Received errors from imp3.0 saying could not find included file. Error
message reported strange path names. See Horde bugs #911 and #912.
Sample Code:
a.php =>
<?php
echo "Calling file ", __FILE__;
echo "<br>included as lib/a.php reports ";
include 'lib/a.php';
echo "<br>included as ./lib/a.php reports ";
include './lib/a.php';
echo "<br>included as /www/yacc/tmp/lib/a.php reports ";
include '/www/yacc/tmp/lib/a.php';
?>
lib/a.php =>
<?php
echo __FILE__;
?>
When I do this, I get
Calling file /www/yacc/tmp/a.php
included as lib/a.php reports /lib/a.php
included as ./lib/a.php reports /lib/a.php
included as /www/yacc/tmp/lib/a.php reports /www/yacc/tmp/lib/a.php
Something keeps putting a leading / on relative paths!
Other Tests:
I created a simple C program to print out the __FILE__ value. When is
compile it with HP's ANSI C compiler it works as expected i.e. the value
is as specified in the include. When I compile with GNU CC compiler (gcc)
the value is "sanitised".
See below
/home/gedl/tmp $ cc -o a a.c ./lib/b.c && echo "The output" && ./a
a.c:
./lib/b.c:
The output
a.c
./lib/b.c
/home/gedl/tmp $ gcc -o a a.c ./lib/b.c && echo "The output" && ./a
The output
a.c
lib/b.c
/home/gedl/tmp $
Essentially the same but not exactly. However both compilers give a valid
answer.
I will continue to work on it but if someone has an answer it would be
appreciated.
Cheers
Ged
--
Edit bug report at http://bugs.php.net/?id=16231&edit=1
--
Fixed in CVS: http://bugs.php.net/fix.php?id=16231&r=fixedcvs
Fixed in release: http://bugs.php.net/fix.php?id=16231&r=alreadyfixed
Need backtrace: http://bugs.php.net/fix.php?id=16231&r=needtrace
Try newer version: http://bugs.php.net/fix.php?id=16231&r=oldversion
Not developer issue: http://bugs.php.net/fix.php?id=16231&r=support
Expected behavior: http://bugs.php.net/fix.php?id=16231&r=notwrong
Not enough info: http://bugs.php.net/fix.php?id=16231&r=notenoughinfo
Submitted twice: http://bugs.php.net/fix.php?id=16231&r=submittedtwice