http://php.net/preg_replace_all

And be sure to use Ungreedy flag to your pattern:
/pattern/U

On Sat, April 14, 2007 11:22 pm, Travis Moore wrote:
> Okay, so what I have is a BB code type of thing for a CMS, which I for
> obvious reasons can't allow HTML.
>
> Here's the snippet of my function:
>
> ********
> function bbCode($str)
>   {
>    $db = new _Mysql;
>    $strOld = $str;
>    $strNew = $str;
>    $getRegexs = $db->query("SELECT `regex`,`replace`,`search` FROM
> `_bb_codes`");
>    while ($getRegex = mysql_fetch_assoc($getRegexs))
>     {
>      $search = base64_decode($getRegex['search']);
>      $regex = base64_decode($getRegex['regex']);
>      $replace = base64_decode($getRegex['replace']);
>      if (preg_match($search,$strNew) == 1)
>       {
>        for ($i = 1; $i < 20; $i++)
>         {
>          $strNew = $strOld;
>       $strNew = preg_replace($regex,$replace,$strNew);
>          if ($strNew == $strOld)
>           {
>            break;
>           }
>          else
>           {
>            $strOld = $strNew;
>           }
>         }
>       }
>     }
>    $return = $strNew;
>    return $return;
>   }
> **********
>
> But, for something like this:
>
> [quote][quote]Quote #2[/quote]Quote #1[/quote]No quote.
>
> I'll get:
>
> <div class="quoteContainer">
> [quote]Quote #2[/quote]Quote #1</div>
> No quote.
>
> Despite being in the loop.
>
> Regex is: /\[quote\]((.*|\n)*)\[\/quote\]/
> Replace is: <div class="messageQuote">$1</div>
>
> Both are stored base64 encoded in a database.
>
> Any help / suggestions much appreciated.
>
> --
> PHP General Mailing List (http://www.php.net/)
> To unsubscribe, visit: http://www.php.net/unsub.php
>
>


-- 
Some people have a "gift" link here.
Know what I want?
I want you to buy a CD from some indie artist.
http://cdbaby.com/browse/from/lynch
Yeah, I get a buck. So?

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

Reply via email to