ID: 12368
Updated by: sander
Reported By: [EMAIL PROTECTED]
Old Status: Open
Status: Closed
Bug Type: Regexps related
Operating System: Linux
PHP Version: 4.0.4pl1
New Comment:

Works fine for me with 4.0.6. It prints out a whole bunch of IIIII's. Try upgrading to 
4.0.6 and reopen this report if the problem still occurs.

Previous Comments:
------------------------------------------------------------------------

[2001-08-30 12:32:53] [EMAIL PROTECTED]

Hi and thanks for your interrest!

Here is an example to ilustrate my problem! I'm not sure if is a memory problem or a 
bug.

I copyed and adapted a part of my source:

<?php
$LEN=5000;   //-- is not working
//$LEN=1000; //-- is working

// creating a long string containg a sub "block"
$BlockTemplate=str_repeat("0", $LEN)."<!-- BEGIN BLOCK: abc -->".str_repeat("I", 
$LEN)."<!-- END BLOCK: abc -->".str_repeat("0", $LEN);
$BLOCKS=array();

function _createChildren_(){
global $BlockTemplate,$BLOCKS; 
$part="[a-z,0-9,\_]*";
$_start_tag_ = "<!--";
$_end_tag_  = "-->";
$_begin_block_ = "BEGIN[[:blank:]]*BLOCK:";
$_end_block_  = "END[[:blank:]]*BLOCK:";

// creating pattern ...
$patern_begin   = 
$_start_tag_."[[:blank:]]*".$_begin_block_."[[:blank:]]*(".$part.")[[:blank:]]*".$_end_tag_;

$patern_end1    = $_start_tag_."[[:blank:]]*".$_end_block_."[[:blank:]]*";
$patern_end2    = "[[:blank:]]*".$_end_tag_;

        while 
((eregi("(".$patern_begin.")(.*)$",$BlockTemplate,$res))&&(eregi("^((.*)".$patern_end1.$res[2].$patern_end2.")",
 $res[3], $res2))){
                //      now $res2[2] is the content of the new block
                //              and $res[2] is the name ...
                // colecting in $BLOCKS the block contain if was found
                $BLOCKS[$res[2]] = $res2[2]; 
                $patern = $res[1].$res2[1];
                $BlockTemplate = str_replace($patern,"{ABC.".$res[2]."}", 
$BlockTemplate);
        }//while
        
}

//the following will extract all chlidren block from text ...
_createChildren_();

//if the block was found will be printed
echo "--".$BLOCKS["abc"]."--";


?>


This problem apears only on php4.0.4pl1

Thanks for your collaboration!
Stefan

------------------------------------------------------------------------

[2001-08-30 10:54:10] [EMAIL PROTECTED]

Unable to reproduce, see the following code:
<?php
$string = str_repeat("0", 10000)."abc".str_repeat("0", 10000);
echo ereg("abc", $string)?"true":"false";
?>
Returns true.

Can you post a snippet of your code?

------------------------------------------------------------------------

[2001-07-25 11:51:09] [EMAIL PROTECTED]

hi

I used the regexp functions (ereg and eregi) to split a file in blocks, the delimiters 
are somthing like:
<!-- BEGIN BLOCK: main -->
<!-- END BLOCK: main -->

but the split operation failt if the file size is bigger then (aproximative value) 11k

So, this is a bug or this was already specified in some place?

Stefan
 


------------------------------------------------------------------------



Edit this bug report at http://bugs.php.net/?id=12368&edit=1


-- 
PHP Development Mailing List <http://www.php.net/>
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]

Reply via email to