php过滤4字节的字符串,【PHP】过滤不完整的UTF-8字符的函数

/*

* 过滤不完整的UTF8字符,UTF8的合法字符范围为:

*     一字节字符:0x00-0x7F

*     二字节字符:0xC0-0xDF 0x80-0xBF

*     三字节字符:0xE0-0xEF 0x80-0xBF 0x80-0xBF

*     四字节字符:0xF0-0xF7 0x80-0xBF 0x80-0xBF 0x80-0xBF

*/

function FilterPartialUTF8Char($str)

{

$str = preg_replace("/[\\xC0-\\xDF](?=[\\x00-\\x7F\\xC0-\\xDF\\xE0-\\xEF\\xF0-\\xF7]|$)/", "", $str);

$str = preg_replace("/[\\xE0-\\xEF][\\x80-\\xBF]{0,1}(?=[\\x00-\\x7F\\xC0-\\xDF\\xE0-\\xEF\\xF0-\\xF7]|$)/", "", $str);

$str = preg_replace("/[\\xF0-\\xF7][\\x80-\\xBF]{0,2}(?=[\\x00-\\x7F\\xC0-\\xDF\\xE0-\\xEF\\xF0-\\xF7]|$)/", "", $str);

return $str;

}

本博客所有文章如无特别注明均为原创。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值