3v4l.org

run code in 300+ PHP versions simultaneously
<?php function bbcodequote2html($matches){ $text=(isset($matches[2])?$matches[2]:''); // avoid Notices if(isset($matches[1]) && ctype_digit($matches[1])){ $TPID = "#{$matches[1]}"; // GetThreadPoster($match[1]); $TPUN = "#{$matches[1]}"; // GetUsernameS($TPID); $quotee="<br>- <b>$TPUN</b>"; }else{ $quotee=''; // no id value or id is non-numeric default to empty string } return "<div class=\"panel panel-default\"><div class=\"panel-heading\">$text$quotee</div></div>"; } $bbcode=<<<BBCODE [quote=2]Outer Quote[b]bold [b]nested bold[/b][/b] [i]italic [i]nested italic[/i][/i][quote]Inner Quote 1: (no id)[/quote] [quote=bitethatapple]Inner Quote 2[quote=1]Inner Quote 3[/quote] still inner quote 2 [quote=mickmackusa]Inner Quote 4[/quote] end of inner quote 2[/quote][/quote] BBCODE; $converted=str_replace( ['[b]','[/b]','[i]','[/i]'], ['<b>','</b>','<i style=\"all:unset;font-style:italic;\">','</i>'], $bbcode ); $tabs="\t"; do{ $converted=preg_replace_callback('~\[quote(?:=(.+?))?]((?:(?R)|.*?)+)\[/quote]~is','bbcodequote2html',$converted,-1,$count); }while($count); echo $converted;

preferences:
25 ms | 406 KiB | 5 Q