2016-01-10 60 views
0

我目前使用jBBCodes爲我的論壇(定製),我有一個字符數限制爲15k但我的問題是字符數檢查也將計數bbcode標籤例如[b]嘿![/ b]會計數爲11時應計爲4.從字符數中排除BBCode標記?

計數檢查;

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>"); 
    } 

我不知道我怎麼能排除BBCodes我不想排除[]人都使用它的其他事情上,任何人都可以只[消息]所以這是不可能的頂部有任何可能的方式來做到這一點,而不必檢查每個標籤完整?

+1

查找正則表達式。你有一個有趣的一天在你之前。 –

+0

請嘗試我的庫解析短代碼和BBCodes:github.com/thunderer/Shortcode。在這個例子中,你只需要註冊默認的短碼,它只處理後返回字符串的內容和計數長度。如果您需要任何幫助,請通過GitHub上的問題告訴我。 –

回答

0

對於正則表達式,這實際上是一個相當簡單的任務。

基本上,如果你需要一個字符串不包括BBCodes的長度,然後使用此令牌:strlen(preg_replace('~\[(codes|to|match)](.*?)\[/\1]~g', '$2', $message))