卸下表情符號我使用Smarty的傳遞中並顯示first_name
變量的內容。有些用戶在他們的first_name
表情符(http://en.wikipedia.org/wiki/Emoji),我想知道我怎麼可以一)有條件地不顯示用戶的first_name
如果它包含表情符號,或者b)從first_name
過濾掉的表情符號字符。這可以用Smarty完成嗎? Smarty中的PHP可以使用它嗎?從可變
從可變
回答
的表情符號被編碼塊中的U + 1F300-U + 1F5FF。
preg_replace('/\xEE[\x80-\xBF][\x80-\xBF]|\xEF[\x81-\x83][\x80-\xBF]/', '', $first_name)
這將剝奪那些出
我想這沒有運氣,但我不知道如果我正確地實現。以下是我嘗試編碼的方法:http://jsbin.com/epefej/1/edit。 – 585connor
@ 585connor:你需要做的像'$如first_name =的preg_replace('〜\ XEE [\ x80- \ XBF] [\ x80- \ XBF] | \ XEF [\ x81- \ X83] [\ x80- \ XBF ]〜','',$ first_name);回聲$ first_name;'從PHP當然(PHP打開/關閉標籤是'<?php'和'?>')。 –
它在preg_replace中不匹配。我只是有表情符號()如何解碼它像x80 ....?所以我可以preg_replace? – saravanabawa
問:這與Smarty的做什麼? 答:是的。
問:可以在Smarty中使用PHP來完成嗎? 答:是的。但請不要在模板上使用PHP標籤。
嘗試在一個模板變量使用一個變量,而不是修改。
{* apply modifier to a variable *}
{$first_name|emojistrip}
將以下內容放入文件夾「/ smarty/plugins /」中名爲「modifier.emojistrip.php」的文件中。
function smarty_modifier_emojistrip($string)
{
return preg_replace('/\xEE[\x80-\xBF][\x80-\xBF]|\xEF[\x81-\x83][\x80-\xBF]/', '', $string);
}
哦對,這是Smarty ... –
我嘗試了一些上面張貼的解決方案,但沒有一個能用的,但是,當我轉換的字符串爲UTF-8使用MB_發揮它正常工作。
您可以使用:
trim(preg_replace('/[\x00-\x1F\x80-\xFF]/', '',
mb_convert_encoding($emojiString, "UTF-8")));
爲我工作。
Upvoted!這是我在SO上找到的第6個解決方案,也是我處理特定字符串的唯一解決方案。 –
這也將刪除特殊字符,如ñ或é – xavip
- 1. 從可變
- 2. Rails--從可變
- 3. 從可變
- 4. 從可變
- 5. 從可變
- 6. PHP - 從可變
- 7. webapp2_extras.jinja2從可變
- 8. JS可變變量可以從閉包
- 9. 可變變量可從閉包訪問
- 10. SQL CREATE從可變
- 11. 從可變文本
- 12. 呼應從可變
- 13. 巴什 - 從可變
- 14. 如何從可變
- 15. 呼叫從可變
- 16. 創建從可變
- 17. 從可變一批
- 18. 的VBScript從可變
- 19. 的JavaScript從可變
- 20. 可變變量是從封閉
- 21. Ç - 模擬 '可變' 從C++
- 22. BASH可變從未設置
- 23. 打印可變從API
- 24. Terraform SQL創建從可變
- 25. 搜索並從由可變
- 26. Usings小葉從可變
- 27. 雙可變從EditText上
- 28. 物業類型從可變
- 29. 蘋果迅速 - 從可變
- 30. 從可變參數模板
它只是(糾正我,如果我錯了)U + F000到U + FFFF –