我正在创建一个论坛,目前正在研究 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 没有正确切割我的字符串。为什么会这样,我该如何解决?