私はフォーラムを作成していて、現在bbCodeセクションに取り組んでいます。すべてのBBCodeは機能しますが、私は絵文字システムも実装しています。構文は次のようになります:[e] :) [/ e]
テスト目的でこの文字列を作成しました。
[b]hello world[/b] [i]i am having fun[/i] [e]:)[/e] how are you doing today?! <3[color=blue]:D[/color]
そして、それは私が望んでいないものを返しています。これが返されるものです:
:)[/e] how are you doing today?! <3[color=bl
これは私のコードです:
function bbCode($str) {
if (strpos($str, '[e]')!==false && strpos($str, '[/e]')!==false) {
$f = strpos($str, '[e]') + 3;
$s = strpos($str, '[/e]');
$emote = substr($str, $f, $s);
}
return $emote;
}
$fと$sは正しい位置45と47を返していますが、substrが文字列を正しく切断していないことに注意してください。これはなぜですか、どうすれば修正できますか?