^"]+)\"([^>]*)>@si'; $replacement = '[img]$2[/img]'; $text = preg_replace($pattern, $replacement, $text); $pattern = "@]*)>@si"; $replacement = '[img]$2[/img]'; $text = preg_replace($pattern, $replacement, $text); return $text; } function link_as_bb($text){ /* This function depends on sanitized HTML */ // Build some regex (should be a *lot* faster) $pattern = '@]+)\">@si'; // Gives us the URL in $1... $replacement = '[url=$1]'; // Turns that URL into a hyperlink $text = preg_replace($pattern, $replacement, $text); $pattern = "@@si"; // Gives us the URL in $1... $replacement = '[url=$1]'; // Turns that URL into a hyperlink $text = preg_replace($pattern, $replacement, $text); $pattern = "@@si"; $replacement = '[/url]'; $text = preg_replace($pattern, $replacement, $text); return $text; } function formatting_as_bb($text){ /* This function depends on sanitized HTML */ $in[]="";$out[]="[b]"; $in[]="";$out[]="[/b]"; $in[]="";$out[]="[i]"; $in[]="";$out[]="[/i]"; $in[]="";$out[]="[u]"; $in[]="";$out[]="[/u]"; $in[]="";$out[]="[b]"; $in[]="";$out[]="[/b]"; $in[]="";$out[]="[/list]"; $in[]="
    ";$out[]="[list=1]"; $in[]="
";$out[]="[/list]"; $in[]="
";$out[]="[pre]";
    $in[]="
";$out[]="[/pre]"; $in[]="
";$out[]="\n"; $in[]="
";$out[]="\n"; $in[]="
";$out[]="\n"; $in[]=">";$out[]=">"; $in[]="<";$out[]="<"; $in[]="&";$out[]="&"; return str_replace($in, $out, $text); } function fix_text($text) { $text = sanitize_html($text); $text = image_as_bb($text); $text = link_as_bb($text); $text = formatting_as_bb($text); return $text; } function fix_post($post) { $text = fix_text($post->content); if ($text != $post->content) { $query = "update post set content = '".mysql_escape_string($text)."' where id=".$post->id; //echo "$post->content\n\n"; //echo "$post->thread $query\n\n"; $retval = mysql_query($query); if (!$retval) { echo mysql_error(); exit(); } } } function fix_posts() { $start_id = 0; //Set this to something else if you like $posts = mysql_query("select * from post where id>$start_id order by id"); echo mysql_error(); $i=0; while ($post = mysql_fetch_object($posts)){ $i++; if ($i%100 == 0) { //For every 100 posts echo $post->id.". "; flush(); // print out where we are //usleep(200000); } if ($post->id > $start_id){ fix_post($post); } } } // use this to patch problem cases; hand-edit function fix_fix() { $posts = mysql_query("select * from post where id=99"); $post = mysql_fetch_object($posts); fix_post($post); } fix_posts(); //fix_fix(); ?>