我目前正在为我的论坛使用jBBCodes(自定义制作),我的字符数限制为15k,但我的问题是字符数检查也会计算bbcode标签,例如[b]嘿![/ b当它应该算作4时,将算作11。
计数检查;
if (strlen($message)<5 || strlen($message)>15000) {
die("<div style='text-align:center;' class='error'>The character limit is 5 to 15,000, your post was ".number_format(strlen($message))." character(s).</div><br>");
}
我想知道如何排除BBC代码我不想排除[]人们确实将其用于其他事情,除此之外任何人都可以[消息]这样就可以了问题是有没有可能的方法来做到这一点,而无需检查完整的每个标签?
答案 0 :(得分:0)
对于正则表达式来说,这实际上是一个相当简单的任务。
基本上,如果您需要不包含BBCodes的字符串长度,请使用此令牌:strlen(preg_replace('~\[(codes|to|match)](.*?)\[/\1]~g', '$2', $message))