ID: 36454
Updated by: [EMAIL PROTECTED]
Reported By: nightstorm at tlen dot pl
-Status: Open
+Status: Bogus
Bug Type: Documentation problem
Operating System: Windows XP
PHP Version: 5.1.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.
Dup of #34206
Previous Comments:
------------------------------------------------------------------------
[2006-04-10 12:55:49] [EMAIL PROTECTED]
It's because of Apache which changes the current working dir at some
point(s). Not PHP bug to be fixed.
------------------------------------------------------------------------
[2006-02-19 20:05:35] nightstorm at tlen dot pl
Description:
------------
In the reproduce code we include a file "test.php" showing 'Hello
World' six times:
- Outside a destructor: "test.php"
- Outside a destructor: "D:\server\www\test\test.php" (full path)
- Outside a destructor: "./test.php"
These three cases work. We don't change include path and try them in a
destructor:
- Outside a destructor: "test.php" - works
- Outside a destructor: "D:\server\www\test\test.php" (full path) -
works
- Outside a destructor: "./test.php" - No such file or directory, even
if the file exists.
Outside a destructor, PHP parses correctly the include path, inside it
seems to be broken, because a fatal error is generated. PHP manual
doesn't explain why the last case doesn't work, I also can't find any
reason. I hope you'll fix it quickly.
---Configuration---
Windows XP SP 2 (NTFS)
PHP 5.1.2
Apache 2.0.55
Ze1.compatibility = 0
Include path = .;C:\php5\pear (PHP 5 default)
Safe mode = off
Reproduce code:
---------------
test.php:
<?php
echo 'Hello world!<br/>';
?>
problem.php:
<?php
require('test.php');
require('D:\server\www\test\test.php');
require('./test.php');
class foo{
function __destruct()
{
require('test.php');
require('D:\server\www\test\test.php');
require('./test.php');
}
}
$foo = new foo;
?>
Expected result:
----------------
Hello world!
Hello world!
Hello world!
Hello world!
Hello world!
Hello world!
Actual result:
--------------
Hello world!
Hello world!
Hello world!
Hello world!
Hello world!
Warning: foo::require(./test.php) [function.require]: failed to open
stream: No such file or directory in D:\server\www\test\problem.php on
line 11
Fatal error: foo::require() [function.require]: Failed opening required
'./test.php' (include_path='.;C:\php5\pear') in
D:\server\www\test\problem.php on line 11
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=36454&edit=1