ID: 26073
Comment by: Leblanc at phpzipscript dot org
Reported By: php at trancer dot nl
Status: Open
Bug Type: Documentation problem
Operating System: Debian Linux
PHP Version: 4.3.3
New Comment:
here is a workaround I use to avoid such problems (I also use it with
CLI scripts to avoid path troubles when launching a script from a
different directory).
At the beginning of the script add :
<?php
define("SCRIPTPATH", str_replace("\\", "/",
realpath(dirname(__FILE__))));
?>
in your ob() callback you now need to do :
<?php
// Ob callback
function ob($buffer)
{
return file_get_contents(SCRIPTPATH.'/open.txt');
}
ob_start('ob');
?>
/Leblanc
Previous Comments:
------------------------------------------------------------------------
[2003-11-03 19:32:02] [EMAIL PROTECTED]
It's not PHP that changes the cwd but Apache.
------------------------------------------------------------------------
[2003-11-01 21:29:13] php at trancer dot nl
Description:
------------
A script that does file_get_contents or file in the callback function
of ob_start wont work. The file_get_contents function cant open the
file.
<?php
// Ob callback
function ob($buffer)
{
return file_get_contents('open.txt');
}
ob_start('ob');
?>
The behaviour is so because the callback sets its cwd to the root of
the disk instead of the folder the script was called from.
If I copy the file I want to open to my root it can open, otherwise it
will throw me this error.
Warning: file_get_contents(open.txt): failed to open stream: No such
file
or directory in /var/www/test.php on line 6
Specifying the full path works. Could be a possible bug in the
callback, otherwise a documentation problem because I was unable to
find it anywhere in the docs.
Reproduce code:
---------------
<?php
// Ob callback
function ob($buffer)
{
return file_get_contents('open.txt');
}
ob_start('ob');
?>
Expected result:
----------------
The content of open.txt
Actual result:
--------------
Warning: file_get_contents(open.txt): failed to open stream: No such
file
or directory in /var/www/test.php on line 6
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=26073&edit=1