作者热门文章
- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我正在寻找一个简单的功能,可以从 instagram 评论中删除表情符号字符。我现在尝试过的(我在 SO 和其他网站上找到的大量示例代码):
// PHP class
public static function removeEmoji($string)
{
// split the string into UTF8 char array
// for loop inside char array
// if char is emoji, remove it
// endfor
// return newstring
}
任何帮助将不胜感激
最佳答案
我认为 preg_replace 函数是最简单的解决方案。
作为EaterOfCode建议,我阅读了 wiki page并编码了新的正则表达式,因为 SO(或其他网站)的答案似乎都不适用于 Instagram 照片标题(API 返回格式)。注意:/u 标识符必须匹配\x unicode 字符。
public static function removeEmoji($text) {
$clean_text = "";
// Match Emoticons
$regexEmoticons = '/[\x{1F600}-\x{1F64F}]/u';
$clean_text = preg_replace($regexEmoticons, '', $text);
// Match Miscellaneous Symbols and Pictographs
$regexSymbols = '/[\x{1F300}-\x{1F5FF}]/u';
$clean_text = preg_replace($regexSymbols, '', $clean_text);
// Match Transport And Map Symbols
$regexTransport = '/[\x{1F680}-\x{1F6FF}]/u';
$clean_text = preg_replace($regexTransport, '', $clean_text);
// Match Miscellaneous Symbols
$regexMisc = '/[\x{2600}-\x{26FF}]/u';
$clean_text = preg_replace($regexMisc, '', $clean_text);
// Match Dingbats
$regexDingbats = '/[\x{2700}-\x{27BF}]/u';
$clean_text = preg_replace($regexDingbats, '', $clean_text);
return $clean_text;
}
该函数不会删除所有表情符号,因为还有更多表情符号,但您明白了。
关于PHP : writing a simple removeEmoji function,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12807176/
我是一名优秀的程序员,十分优秀!