php替换中文,PHP中文替换

//定义编码

header( 'Content-Type:text/html;charset=utf-8 ');

$words=array('我','你','他');

$content="测一测我是不是违禁词";

$banned=generateRegularExpression($words);

//检查违禁词

$res_banned=check_words($banned,$content);

write_html($content,$res_banned);

/**

* @describe 数组生成正则表达式

* @param array $words

* @return string

*/

function generateRegularExpression($words)

{

$regular = implode('|', array_map('preg_quote', $words));

return "/$regular/i";

}

/**

* @describe 字符串 生成正则表达式

* @param array $words

* @return string

*/

function generateRegularExpressionString($string){

$str_arr[0]=$string;

$str_new_arr=  array_map('preg_quote', $str_arr);

return $str_new_arr[0];

}

/**

* 检查敏感词

* @param $banned

* @param $string

* @return bool|string

*/

function check_words($banned,$string)

{    $match_banned=array();

//循环查出所有敏感词

$new_banned=strtolower($banned);

$i=0;

do{

$matches=null;

if (!empty($new_banned) && preg_match($new_banned, $string, $matches)) {

$isempyt=empty($matches[0]);

if(!$isempyt){

$match_banned = array_merge($match_banned, $matches);

$matches_str=strtolower(generateRegularExpressionString($matches[0]));

$new_banned=str_replace("|".$matches_str."|","|",$new_banned);

$new_banned=str_replace("/".$matches_str."|","/",$new_banned);

$new_banned=str_replace("|".$matches_str."/","/",$new_banned);

}

}

$i++;

if($i>20){

$isempyt=true;

break;

}

}while(count($matches)>0 && !$isempyt);

//查出敏感词

if($match_banned){

return $match_banned;

}

//没有查出敏感词

return array();

}

/**

* 打印到页面上

* @param $filepath

* @param $res_mingan

* @param $res_banned

*/

function write_html($content,$res_banned){

print_r($content);

if($res_banned){

print_r("  违禁词(".count($res_banned)."):".implode('|',$res_banned));

}

echo "
";

}

1、匹配中文

$str = "中文“;

preg_match_all("/[\x{4e00}-\x{9fa5}]+/u",$str,$match);

2、替换中文:

在所在的php文件里,要加上

mb_internal_encoding("UTF-8");

mb_regex_encoding("UTF-8");

这样才能支持多字节进行模式匹配。详细介绍:http://blog.chinaunix.net/uid-20279807-id-1711213.html

3、php提供了四个替换函数,分别是str_replace,preg_replace,mb_ereg_replace,ereg_replace(在php7.1已经摒弃掉)

在替换中文时,发现用preg_replace替换中文最合适.

str_replace 不支持正则表达式,不能完全匹配,导致局部字段被替换。例如: $str = "模块一 模块一断电",$str = str_replace("模块一","module1",$str);,导致"模块一断电"被替换成"module1断电"。

mixed preg_replace ( mixed $pattern , mixed $replacement , mixed $subject [, int $limit = -1 [, int &$count ]] )  支持$pattern,$replacement 以数组的方式进行查找替换,但数组过多时,进行搜索匹配,耗CPU严重。

mb_ereg_replace 支持正则表达式,但不用分隔符//进行匹配,但使用mb_ereg_replace,发现有些中文匹配不了。具体原因暂不清楚。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/395011.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

secoclient隧道保活超时或协商超时_推荐:承德市隧道led大屏厂家电话【联丰智慧科技】...

通过为大型隧道施工建设搭建全覆盖式的定位,可以有效施工的效率、项目现场的保障能力。安装隧道门禁能解决哪些问题?近年来,我国交通建设正处于高速发展的阶段,在交通建设中,工程安防工作也越发受到,越来越…

JavaScript Essentials:如何为循环而烦恼

by Zell Liew由Zell Liew JavaScript Essentials:如何为循环而烦恼 (JavaScript Essentials: how to wrap your head around for loops) Let’s say you want to run a function, bounceBall, four times. How would you do it? Like this?假设您要运行一次功能b…

python中的类的成员变量以及property函数

1 python类的各种变量 1.1 全局变量 在类外定义的变量。 1.2 类变量 定义在类里面,所有的函数外面的变量。这个变量只有一份,是所有的对象共有的。在类外用“类.”来引用。 1.3 实例变量 用self.xxx在类的任何函数中定义的变量就是实例变量。在类内用“s…

C++常用的系统函数

数学<math.h>&#xff1a; 1 三角函数 double sin (double); double cos (double); double tan (double); 2 反三角函数 double asin (double); 结果介于[-PI/2, PI/2] double acos (double); 结果介于[0, PI] double atan (double); 反正切(主值), 结果介于[-PI/2, PI/2…

网页特效java代码,美化网页常用特效代码

1&#xff0e;让文字不停地滚动&#xff1c;MARQUEE&#xff1e;滚动文字&#xff1c;/MARQUEE&#xff1e;2&#xff0e;记录并显示网页的最后修改时间&#xff1c;script languageJavaScript&#xff1e;document.write("最后更新时间: " document.lastModified …

作业,两次实验

实验一&#xff1a; 1 编程打印5行的倒三角形&#xff0c;第一行打印9个*&#xff0c;第二行7个*&#xff0c;……第5行打印1个* #include<stdio.h>int main(){printf("*********\n *******\n *****\n ***\n *\n");return 0;} 总结 注意换行以及位置的…

javaweb和ajax使用查询出来的数据做下拉菜单_区块链浏览器实用指南篇:利用链上数据把握减半行情...

进入2020年&#xff0c;加密货币市场最热的话题当属“减半”了。在减半行情的推动下&#xff0c;以BTC为首的减半币种展现出了极强的上行趋势。如何抓住这一波行情&#xff0c;评估正确时机&#xff1f;当然&#xff0c;这个问题的答案可以说是争议纷纷&#xff0c;但有一个参考…

纯函数式编程语言_纯功能编程语言如何改变您的生活。

纯函数式编程语言by Andrea Zanin由Andrea Zanin 纯功能编程语言如何改变您的生活。 (How a purely functional programming language can change your life.) I believe everyone should learn Haskell, even if you won’t use it in your work. It’s beautiful, and it ch…

Win10 教育版

Windows 10 版本 1607 引入了专为 K-12 机构的特有需求而设计的两个版本&#xff1a;Windows 10 专业教育版和 Windows 10 教育版。 这些版本为不断发展的 K-12 教育 IT 环境提供特定于教育的默认设置。Windows 10 专业教育版Windows 10 专业教育版基于 Windows 10 专业版的商业…

java中的排序方法,Java中的排序比较方式:自然排序和比较器排序

这里所说到的Java中的排序并不是指插入排序、希尔排序、归并排序等具体的排序算法。而是指执行这些排序算法时&#xff0c;比较两个对象“大小”的比较操作。我们很容易理解整型的 i>j 这样的比较方式&#xff0c;但当我们对多个对象进行排序时&#xff0c;如何比较两个对象…

ImageView缩放选项

ImageView.ScaleType 将图片边界缩放到所在view边界时的缩放选项。 Options for scaling the bounds of an image to the bounds of this view. 不同选项含义 CENTER 居中&#xff0c;不缩放。 Center the image in the view, but perform no scaling. CENTER_CROP 居中&#x…

css命名_CSS命名约定将节省您的调试时间

css命名I have heard lots of developers say they hate CSS. In my experience, this comes as a result of not taking the time to learn CSS.我听到很多开发人员说他们讨厌CSS。 以我的经验&#xff0c;这是因为没有花时间学习CSS。 Korean ??韩文?? 알림: 한국인 독…

电脑删除快捷键_可能是知乎最有用的 Windows 快捷键学习指南。

在任何地方搜索“快捷键的使用”&#xff0c;你都能找到无数的列表清单。但你应该不会专门去对照一个个的表单&#xff0c;企图把所有快捷键全部掌握吧&#xff1f;经过三年左右的总结和视频制作&#xff0c;Topbook 大概产出了 20 支左右的快捷键、快捷操作及应用等相关的视频…

java自动依照日期建表,脚本根据一个表中的日期字段填充每月汇总表

你想在这里做两件事 . 我假设您正在使用Oracle(因为您正在使用Java) .首先&#xff0c;您希望对每个用户的每日交易进行分组 .创建一个名为 tempTable 的临时表 .使用 to_char(currentdate, yyyy/mm/dd) 对它们进行分组 .INSERT INTO tempTableSELECTuserid,resourceid,doc_nam…

算法专题 普及组【2008】三3 C++版

转载于:https://www.cnblogs.com/qilinart/articles/5914850.html

linux用户修改用户shell

要拒绝系统用户登录,可以将其shell设置为/usr/sbin/nologin或者/bin/false # usermod -s /usr/sbin/nologin username 或者 # usermod -s /bin/false username /bin/false/bin/false什么也不做只是返回一个错误状态,然后立即退出。将用户的shell设置为/bin/false,用户会无法登录…

【覆盖安装】通用测试点

需要xmind文档请留言将会私发。 转载于:https://www.cnblogs.com/syw20170419/p/10457600.html

instagram架构_如何创建像Instagram这样的照片共享应用程序:基本知识。

instagram架构by Dmytro Brovkin由Dmytro Brovkin 如何创建像Instagram这样的照片共享应用程序&#xff1a;基本知识。 (How to create a photo sharing app like Instagram: the basics.) After two centuries of rapid development, photography has come a long way from b…

菜鸟裹裹电脑版_【绵阳最新转让】3500低价出售家用制氧机!东芝i5笔记本电脑、索尼微单相机、联想笔记本电脑、奶茶店、服装店转让......

转换价值&#xff0c;传承梦想西蜀网让你淘好物~3500出售鱼跃家用制氧机&#xff0c;带雾化全新鱼跃152021/9F_5W型家用制氧机&#xff0c;带雾化。正规医疗器械公司买的&#xff0c;有小票&#xff0c;买到只用了一次&#xff0c;买成4382现低价转让。联系电话&#xff1a;邓女…

认识软件性能测试10大误区

曾经我们帮助客户进行软件性能测试的时候&#xff0c;客户不解的问&#xff0c;不是必须通过功能测试后才可以测试性能吗&#xff1f;可能有很多人会存在这样的疑问&#xff0c;在这里&#xff0c;我们的多位专家根据多年经验总结出性能测试的10大误区&#xff0c;希望能给大家…