Quoting John Holmes <[EMAIL PROTECTED]>:

> From: "Skippy" <[EMAIL PROTECTED]>
> > I'm trying to replace all occurances of the X character in a text
> > with Y, but only those X's that occur between bold tags (<b></b>).
> 
> <?php
> 
> $str = 'This X and this X will not be fixed, but <b>this X
> and</b> and hopefully this <b>X</b> should be, along <b> with
> this X also. </b>, but not this X.';
> 
> function myreplace($match)
> {
>     $from = 'X';
>     $to = 'Y';
>     return str_replace($from,$to,$match[0]);
> }
> 
> $new_str = preg_replace_callback('#<b>.*</b>#Uis','myreplace',$str);
> 
> echo $new_str;
> 
> ?>

It works great, thank you. I had tried something on my own previously,
but without the ungreedy modifier and with replacements inside a
repeated while{} cycle instead of a callback. The main drawback in my
version was that an X near "hopefully" would have been replaced as
well (since technically it is between <b> and </b>). But that wasn't
what I wanted, of course.

-- 
Romanian Web Developers - http://ROWD.ORG

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to