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

 ID:               51961
 Updated by:       [email protected]
 Reported by:      zane at zanehooper dot com
 Summary:          ob_start w/ str_ireplace
-Status:           Open
+Status:           Feedback
 Type:             Bug
 Package:          Output Control
 Operating System: Apache
 PHP Version:      5.2.13

 New Comment:

That's still incomplete, since it doesn't include the actual array
you're giving str_ireplace() (which is kind of important).



Honestly, I'm kind of inclined to suspect it's a problem in your code,
rather than PHP, since the following code works for me on PHP 5.2:



<?php

function filter_output($text) {

    $adjectives = array('quick', 'brown');

    return str_ireplace($adjectives, '', $text);

}



ob_start('filter_output');

echo 'The Quick Brown Fox Jumps Over The Lazy Dog';

ob_end_flush();



// Should end up printing "The   Fox Jumps Over The Lazy Dog"

?>


Previous Comments:
------------------------------------------------------------------------
[2010-06-01 13:31:47] zane at zanehooper dot com

Okay, the full script with PHP tags:



<?php

function optimizeHTML( $html )

{

    $badwords_array = array(  );

    $replacement = '';

    

    $html = str_ireplace( $badwords_array, $replacement, $html );

    return $html;

}



ob_start( 'optimizeHTML' );

?>



This is CapItalized.



The I or C in CapItalized might be removed, as well as the T in This or
The.

------------------------------------------------------------------------
[2010-06-01 09:40:05] [email protected]

Thank you for this bug report. To properly diagnose the problem, we
need a short but complete example script to be able to reproduce
this bug ourselves. 

A proper reproducing script starts with <?php and ends with ?>,
is max. 10-20 lines long and does not require any external 
resources such as databases, etc. If the script requires a 
database to demonstrate the issue, please make sure it creates 
all necessary tables, stored procedures etc.

Please avoid embedding huge scripts into the report.



------------------------------------------------------------------------
[2010-06-01 06:02:14] zane at zanehooper dot com

Description:
------------
I am making a bad word replacer using certain profanity settings.
Basically, when 

I use str_ireplace inside of ob_start, a lot of the capitals on the page
are 

removed (I didn't see any capitals added).



I'm not sure why it is happening, but I really need this fixed.

Test script:
---------------
function optimizeHTML( $html )

{

    $html = str_ireplace( $badwords_array, $replacement, $html );

    return $html;

}



ob_start( 'optimizeHTML' );

Expected result:
----------------
A regular page with $badwords_array replaced by $replacement

Actual result:
--------------
Some capitals on the page are removed


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



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

Reply via email to