じぇいそんじぇいそんこれで入れ子のタグも行けませんかね
入れ子のタグよく考えたらペアずつ変換すればいいから、①を繰り返しやるだけでいいじゃないか!って気付いて感動してた←
$message = "本文";
//①前からhtmlタグに変換
$pattern = "/\[s([1-9][0-9]?)\](.*?)\[/s\]/";
$replace = "<span style=\"font-size:$1px;\">$2</span>"
$message = preg_replace($pattern, $replace, $message);
//②入れ子もhtmlタグに変換
$pattern = "/\[s([1-9][0-9]?)\](.*?)\[/s\]/";
$replace = "<span style=\"font-size:$1px;\">$2</span>"
while(preg_match($pattern,$message)){
$message = preg_replace($pattern, $replace, $message);
}