first_name
変数の内容を渡して表示するために Smarty を使用しています。一部のユーザーは絵文字文字 ( http://en.wikipedia.org/wiki/Emoji ) を使用してfirst_name
おり、a) 絵文字が含まれている場合に条件付きでユーザーを表示しないようにするか、first_name
b) から絵文字文字を除外する方法を考えていますfirst_name
。これは Smarty で実行できますか? Smarty の PHP で実行できますか?
質問する
13703 次
4 に答える
15
絵文字はブロック U+1F300–U+1F5FF でエンコードされます。
preg_replace('/\xEE[\x80-\xBF][\x80-\xBF]|\xEF[\x81-\x83][\x80-\xBF]/', '', $first_name)
これはそれらを取り除きます
于 2012-10-30T23:16:18.207 に答える
12
上記の解決策をいくつか試しましたが、誰もうまくいきませんでしたが、mb_ 関数を使用して文字列を UTF-8 に変換すると、正しく機能しました。
以下を使用できます。
trim( preg_replace('/[\x00-\x1F\x80-\xFF]/', '',
mb_convert_encoding( $emojiString, "UTF-8" ) ) );
私のために働きます。
于 2016-01-05T16:26:26.260 に答える
1
Q: これは Smarty で実行できますか? A: はい。
Q: Smarty で PHP を使用することはできますか? A: はい。ただし、テンプレート側で 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);
}
于 2012-11-04T10:21:08.423 に答える