Php 从变量中删除表情符号
我正在使用Smarty传入并显示Php 从变量中删除表情符号,php,smarty,Php,Smarty,我正在使用Smarty传入并显示first\u name变量的内容。一些用户的first\u name中有表情符号(),我想知道如何a)有条件地不显示用户的first\u name(如果它包含表情符号),或者b)从first\u name中过滤出表情符号。这可以用Smarty来完成吗?可以用Smarty中的PHP实现吗?表情符号编码在U+1F300–U+1F5FF块中 preg_replace('/\xEE[\x80-\xBF][\x80-\xBF]|\xEF[\x81-\x83][\x80-\
first\u name
变量的内容。一些用户的first\u name
中有表情符号(),我想知道如何a)有条件地不显示用户的first\u name
(如果它包含表情符号),或者b)从first\u name
中过滤出表情符号。这可以用Smarty来完成吗?可以用Smarty中的PHP实现吗?表情符号编码在U+1F300–U+1F5FF块中
preg_replace('/\xEE[\x80-\xBF][\x80-\xBF]|\xEF[\x81-\x83][\x80-\xBF]/', '', $first_name)
这将去除这些功能问:这可以用Smarty完成吗? A:是的 问:在Smarty中可以用PHP完成吗? A:是的。但请不要在模板端使用PHP标记 尝试在模板变量上使用变量修饰符
{* apply modifier to a variable *}
{$first_name|emojistrip}
将以下内容放入文件夹“/smarty/plugins/”中名为“modifier.emojistrip.php”的文件中
我尝试了上面发布的一些解决方案,但是没有人成功,但是,当我使用mb_uu函数将字符串转换为UTF-8时,它工作正常 您可以使用:
trim( preg_replace('/[\x00-\x1F\x80-\xFF]/', '',
mb_convert_encoding( $emojiString, "UTF-8" ) ) );
对我来说很有用。只是(如果我错了,请纠正我)U+F000到U+FFFFI我尝试了这个,但运气不好,但我不确定是否正确实施。下面是我如何编写代码的:@585connor:您需要执行类似于
$first\u name=preg\u replace(“~\xEE[\x80-\xBF][\x80-\xBF].\xEF[\x81-\x83][\x80-\xBF]~”,“$first\u name”);echo$first_name代码>当然来自PHP(PHP打开/关闭标记是
)。它在preg\u replace中不匹配。我只是有表情符号(根据维基,表情符号是从U+1F600编码到U+1F64F:。你从哪里得到你的号码的?❤️ : 这是同一位置的双心!!我已将其删除:$text=str\u replace(“❤️","",$这是我在SO上找到的第六个解决方案,也是唯一一个适用于我正在处理的特定字符串的解决方案。这也将删除像ñoré这样的特殊字符
trim( preg_replace('/[\x00-\x1F\x80-\xFF]/', '',
mb_convert_encoding( $emojiString, "UTF-8" ) ) );