各位大佬【鎶樺彔姝烘妞呭】这种文字怎么用正则过滤掉[已解决]
『回复列表(31|隐藏机器人聊天)』
@童真再见,你看不到演示结果吗?
因为 https://hu60.cn/q.php/api.webplug-file.1_public_gbk-lite-min.js 登录可见,所以只能在虎绿林看到演示结果。如果想用于其他网站,你需要下载这个文件然后放在你站,然后修改网页中引用的链接。
$obj='我直接在php里这样写的';
$gbk = mb_convert_encoding($obj, 'GBK', 'UTF-8'); // 文件是UTF-8的,想得到GBK字节序列需要进行编码转换
$hex = bin2hex($gbk);
// echo "$v\t->\t$hex\t->\t$gbk\n<br>"; // 虽然$gbk名义上是“GBK字节序列”,但它实际上是UTF-8字节序列,所以可以直接当作UTF-8字符串输出
if(mb_detect_encoding($gbk, 'UTF-8', true)){ // 判断结果false
$obj=$gbk;
}else{
$obj=$obj;
}
手机
@老虎会游泳,有,有些转换后还会缺些字,多出个方块符号,然后我又加了个判断,计算有几个符号,小于三个直接把符号在过滤下。
【姘存櫠鐏杩樻槸鍚搁鐏】【锟斤拷锟斤拷锟斤拷农锟矫筹拷】【鏉庡瓙锲珯涓轰粈涔埚彨鏉庡瓙锲】像这些转换后还会有很多符号我还没想到怎么处理。。。
function utf8_count($a,$b=1)
{
preg_match_all("/[\x01-\x7f]|[\xc2-\xdf][\x80-\xbf]|[\xe0-\xef][\x80-\xbf]{2}|[\xf0-\xff][\x80-\xbf]{3}/", $a, $ab);
if($b==1){
return count($ab[0]);
}else{
return implode("",$ab[0]);
}
}
$objac='姘存櫠鐏ソ杩樻槸鍚搁鐏ソ'; //【鐏姱缁掗様鑵胯濂抽珮鑵】这种转换后还有少量符号的都能过滤
$gbk = mb_convert_encoding($objac, 'GBK', 'UTF-8'); // 文件是UTF-8的,想得到GBK字节序列需要进行编码转换
$hex = bin2hex($gbk);
//echo "$objac\t->\t$hex\t->\t$gbk\n<br>"; // 虽然$gbk名义上是“GBK字节序列”,但它实际上是UTF-8字节序列,所以可以直接当作UTF-8字符串输出
if(mb_detect_encoding($gbk, 'UTF-8', true)){ // 判断结果false
echo $gbk;
}else{
if((mb_strlen($gbk, 'UTF-8')-utf8_count($gbk)) < 3){
echo utf8_count($gbk,2);
}else{
echo $objac;
}
}
手机