php过滤所有英文中文的标点符号代码

本文介绍了一种使用PHP处理网站搜索功能中中文及英文标点符号的方法。通过正则表达式过滤标点符号时遇到了乱码问题,并找到了一种解决方案,即先对文字和标点进行编码再进行过滤。
部署运行你感兴趣的模型镜像
最近公司要求网站的搜索功能增加将关键字过虑所有标点符号(包括中英文标点符号)后再进行数据库的查询操作,心想这还不容易,PHP的强大函数立即体现,PHP就是强大(哈哈,跑题了),一个正则搞定。
例子:
$keyword='阿’凡;提,美。食,城 ';
$keyword=preg_replace("/[~`!@#$%^&*()_+|\=-}{[]":;'?><,./?》《,。、“”:;‘’=—()|…¥·!]+/",'',$keyword);
echo $keyword;
//输出结果:阿凡提美食城
是不是很简单?我也以为是这么简单,但接下来郁闷了。
  某些文字过虑后出现了乱码,例如:海、厅等等,经研究发现,这些中文与某些中文的标点符号的部分编码是相同的,所以过虑后造成文字不完成而乱码。
去掉这些中文标点符号是可以解决问题,但就达不到过虑效果了。
  郁闷了两天,今天一早突发灵感,居然是文字与标点符号编码的某部分相同被过滤了,那么将他们先编码后,用正则完成匹配标点符号的编码才过滤就可以啦。想到就做。
将所有标点符号先编码,每个符号的完整编码用(|)隔开,如下:%7E|%60|%21|%40|%23|%24|%25|%5E|%26|%27|%2A|%28|%29|%2B|%7C|%5C|%3D|\-|_|%5B|%5D|%7D|%7B|%3B|%22|%3A|%3F|%3E|%3C|%2C|\.|%2F|%A3%BF|%A1%B7|%A1%B6|%A1%A2|%A1%A3|%A3%AC|%7D|%A1%B0|%A3%BA|%A3%BB|%A1%AE|%A1%AF|%A1%B1|%A3%FC|%A3%BD|%A1%AA|%A3%A9|%A3%A8|%A1%

您可能感兴趣的与本文相关的镜像

ACE-Step

ACE-Step

音乐合成
ACE-Step

ACE-Step是由中国团队阶跃星辰(StepFun)与ACE Studio联手打造的开源音乐生成模型。 它拥有3.5B参数量,支持快速高质量生成、强可控性和易于拓展的特点。 最厉害的是,它可以生成多种语言的歌曲,包括但不限于中文、英文、日文等19种语言

评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值