Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/246.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 从变量中删除表情符号_Php_Smarty - Fatal编程技术网

Php 从变量中删除表情符号

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-\

我正在使用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-\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" ) ) );