Bug #53374 [Bgs]: str_replace & fwrite
| From: | pascalholscher at gmail dot com | Date: | Tue, 23 Nov 2010 09:38:30 +0000 |
| Subject: | Bug #53374 [Bgs]: str_replace & fwrite | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-156306@lists.php.net to get a copy of this message | ||
Edit report at http://bugs.php.net/bug.php?id=53374&edit=1
ID: 53374
User updated by: pascalholscher at gmail dot com
Reported by: pascalholscher at gmail dot com
Summary: str_replace & fwrite
Status: Bogus
Type: Bug
Package: *General Issues
Operating System: Windows
PHP Version: Irrelevant
Block user comment: N
Private report: N
New Comment:
Yes this is happening with php 5 also but it's not a bug it seems as:
$version = explode('.', VERSION);
$new = explode('.', $newversion);
$data1 = preg_replace('{'.$version[2].'}', '.$new[2].', $data);
$version[2] represents the old version number ending in this example a
4
$new[2] represents the new version in this example 5
The thing is when I run it the changes are made but all php errors are
not displayed on the screen anymore same goes for the echo's etc.
Once I make the line like this:
$data1 = preg_replace('{'.$version[2].'}', '{'.$new[2].'}',
$data);
It works but only adds some unnesecary and not planned {} to it.
Previous Comments:
------------------------------------------------------------------------
[2010-11-23 10:27:23] aharvey@php.net
It might seem like a bug to you (and it may be one), but I think there
are a few reasons why you'd be better off going through a support
channel first:
Firstly, you yourself closed the bug report with the comment "Solved",
so that would suggest that there wasn't a bug for us to look at. :)
Secondly, PHP 4 is well past its end of life date, so unless you can
reproduce this in a current 5.3 build (5.3.3 or later), this isn't
going to be investigated further.
Thirdly, you haven't attached a minimal example -- there's quite a bit
of extra code there that doesn't appear to be relevant to the bug --
nor have you explained how the code you've attached is misbehaving,
what error messages are displayed, and it's quite unclear to me what
the actual bug is supposed to be, beyond some sort of issue with
str_replace and/or fwrite, which could be anything.
For those reasons, I'd very strongly advise you to try seeking help
via a mailing list, or Stack Overflow, or IRC, or some combination of
the above. If, after all that, there still seems to be a bug, please
provide a minimal test case showing the problem and a clear
explanation of exactly what's wrong.
------------------------------------------------------------------------
[2010-11-23 08:53:26] pascalholscher at gmail dot com
What do I need to contact to get this fixed.
It seems like a bug to me...
------------------------------------------------------------------------
[2010-11-22 10:37:02] johannes@php.net
Sorry, but your problem does not imply a bug in PHP itself. For a
list of more appropriate places to ask for help using PHP, please
visit http://www.php.net/support.php as this bug system
is not the
appropriate forum for asking support questions. Due to the volume
of reports we can not explain in detail here why your report is not
a bug. The support channels will be able to provide an explanation
for you.
Thank you for your interest in PHP.
------------------------------------------------------------------------
[2010-11-22 10:34:43] pascalholscher at gmail dot com
Solved
------------------------------------------------------------------------
[2010-11-22 09:04:23] pascalholscher at gmail dot com
Description:
------------
A bug with str_replace & fwrite
Test script:
---------------
function installNewerVersion($newversion) {
$docroot = $_SERVER['DOCUMENT_ROOT'];
// url naar zip (update site)
$src = 'http://support.telsec.nl/tms_updates/'.$newversion.'.zip';
//locatie voor het zip bestand
$dest = $docroot.'/tmp/'.$newversion.'.zip';
// open de locaties
$fsrc = fopen($src,'r');
$fdest = fopen($dest,'w+');
// kopieër bestand van locatie a naar b
$len = copy($src,$dest);
// sluit locaties
fclose($fsrc);
fclose($fdest);
$command = 'x "'.$docroot.'/tmp/'.$newversion.'.zip" -aoa
-o"'.$docroot.'/tmp/" && exit';
$programDir = $docroot."/../7za.exe";
if(file_exists('tmp/upgrade_'.$newversion.'.php')) {
require_once('tmp/upgrade_'.$newversion.'.php');
}
$filename = $_SERVER['DOCUMENT_ROOT'].'/product_version.php';
if(!$openfile = fopen($filename, 'rb+')) {
echo 'Kan bestand niet openen.';
}
$data = file_get_contents($filename);
$data1 = str_replace('3.3.4', '3.3.5', $data);
rewind($openfile);
fwrite($openfile, $data1);
fclose($openfile);
if(isset($_COOKIE['checked'])) {
setcookie("checked", "", time() - 3600);
}
echo "<script type='text/javascript'>
alert('De update is geslaagd.');
</script>";
return $len;
}
Expected result:
----------------
Show the output/alertbox "update succes"
Actual result:
--------------
No output of echo's or alerts at all.
Extra info:
This is a function included in another file when I comment out the
fwrite
the script shows the output but doesn't write the data in the correct
way.
So there are some issues with str_replace & fwrite.
I'm using php 4.4.4 as that is the version the firmware is using where
we want to let users implent an auto update.
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/bug.php?id=53374&edit=1