|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
[2004-07-23 11:00 UTC] mobanajp at yahoo dot co dot jp
Description:
------------
Please compare this 3 script :
1. Simple Open a Page (everything going well)
<?
$buf = "";
$fp = fopen("http://poxy.x0.com/deai/html/index.html", "r");
if($fp) while(!feof($fp)) $buf.=fread($fp, 1024);
echo $buf;
?>
2. Simple Open A Page and eliminate the line break (THE PAGE CUT IN MIDDLE)
<?
$buf = "";
$fp = fopen("http://poxy.x0.com/deai/html/index.html", "r");
if($fp) while(!feof($fp)) $buf.=fread($fp, 1024);
$buf = ereg_replace("\r|\n", "", $buf);
echo $buf;
?>
3. Open page using File and eliminate line-break per array elements (everything going well)
<?
$buf = file("http://poxy.x0.com/deai/html/index.html");
foreach($buf as $key=> $value) {
$buf[$key] = ereg_replace("\r|\n", "", $buf[$key]);
}
$buf = implode("", $buf);
$buf = ereg_replace("\r|\n", "", $buf);
echo $buf;
?>
Reproduce code:
---------------
<?
$buf = "";
$fp = fopen("http://poxy.x0.com/deai/html/index.html", "r");
if($fp) while(!feof($fp)) $buf.=fread($fp, 1024);
$buf = ereg_replace("\r|\n", "", $buf);
echo $buf;
?>
Expected result:
----------------
the page without break line
Actual result:
--------------
half of the page without break line
PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
|
|||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Wed Oct 29 20:00:01 2025 UTC |
It seems the way to read the page into $buf doesn't matter. Just a bug in ereg_replace() as simply replacing it by preg_replace() worked. <?php $buf = file("http://poxy.x0.com/deai/html/index.html"); $buf = implode("", $buf); $buf = ereg_replace("\r|\n", "", $buf); echo $buf; ?> This also gives a wrong result.The following code just doesn't work: <?php echo ereg_replace("a", "a", "abc\0def\0"); ?> Because inserted null bytes (?x00) prevents it from properly concatenating substrings delimited by the replacement. dunno if this is a limitation of ereg_* though.