$text = $post['message'];preg_match_all('/\[roll\](.*?)\[\/roll\]/i', $text, $match);foreach ($match[0] AS $roll){ $row1 = ''; $row2 = ''; $rolltext = strtolower(preg_replace('/\[roll\](.*?)\[\/roll\]/', '$1', $roll)); $rt_parse = explode('d', $rolltext); $dice = intval($rt_parse[0]); preg_match('~[^0-9]~i', $rt_parse[1], $signpos, PREG_OFFSET_CAPTURE); $sign = substr($rt_parse[1], $signpos[0][1], 1); $fm_parse = explode($sign, $rt_parse[1]); $faces = intval($fm_parse[0]); if ($sign == '+') { $mod = intval($fm_parse[1]); } elseif ($sign == '-') { $mod = -intval($fm_parse[1]); } $dsum = 0; for ($m = 0; $m < $dice; $m++) { $d = mt_rand(1, $faces); $dsum += $d; $dnum = $m + 1; $row1 .= '[TD] Die ' . $dnum . ' [/TD]'; $row2 .= '[TD]' . $d . '[/TD]'; } $dsum += $mod; $row1 = '[TR]' . $row1 . '[TD]Modifier[/TD][TD]Sum[/TD][/TR]'; $row2 = '[TR]' . $row2 . '[TD]' . $mod . '[/TD][TD]' . $dsum . '[/TD][/TR]'; $replace = '[TABLE="class: grid"]' . $row1 . $row2 . '[/TABLE]'; $text = str_replace($roll, $replace, $text);}$post['message'] = $text;