请选择 进入手机版 | 继续访问电脑版
绿茶科技社区

php实现特殊字符的替换操作

2019-11-21 08:36
1763
前言:作为一名phper,对于字符串的操作是必须要掌握的,因此,我们就会接触到如何替换或者屏蔽字符串中的敏感词问题,接下来,就为大家介绍一下替换的方法。文章仅供参考,谢谢!
实例:
第一步:在字符串中搜索有无敏感词
  1. int substr_count(string haystack,string needle)
复制代码
substr_count() 函数检索子串出现的次数,参数haystack是指定的字符串,参数needle为指定的字符。
  1. //定义敏感词数组

  2. $array = array('骂人','肮脏','污秽');

  3. //定义包含敏感词的字符串

  4. $mgstr = '这是包含骂人肮脏污秽的话';

  5. //利用循环判断字符串是否包含敏感词

  6. for($i = 0; $i <= count($array); $i++) {

  7. $count = substr_count($mgstr, $array);

  8. if($count > 0) {

  9. $info = $count;

  10. break;

  11. }

  12. }

  13. if($info > 0) {

  14. //有敏感字符

  15. return true;

  16. }else{

  17. //无敏感字符

  18. return false;

  19. }
复制代码
第二步:使用preg_replace()函数实现敏感词的替换
preg_replace()函数执行一个正则表达式的搜索和替换
  1. mixed preg_replace ( mixed $pattern , mixed $replacement , mixed $subject [, int $limit = -1 [, int &$count ]] )
复制代码
  1. //关键词存放在.txt文件中

  2. <?php

  3. //自定义替换函数

  4. function Replace($str, $filenam){

  5. if(!($words = file_get_contents($filename))) {

  6. //将敏感词语文本取出

  7. die('文件获取失败!');

  8. }

  9. //取出成功,将字符串改成小写

  10. $string = strtolower($str);

  11. $word = preg_replace('/[1,2,3]\r\n|\r\n/i','',$words);

  12. //字符串中出现文本敏感词,用特殊符号替换

  13. $match = preg_replace('/'.$word.'/i','***',$string);

  14. return $match;

  15. }

  16. //定义包含敏感词的字符串

  17. $content = '<a href="#">肮脏fsdf污秽d 骂人</a>'

  18. //判断是否替换成功

  19. if($result = Replace($content, './words.txt')) {

  20. echo $result;

  21. echo '替换成功!';

  22. }else {

  23. echo '替换失败!';

  24. }

  25. ?>
复制代码


分享到 :
0 人收藏

3 个回复

倒序浏览
阿新  金牌会员 | 2019-11-21 09:20:43
无论是不是沙发都得回复下
Teddys Knowledg  高级会员 | 2019-12-8 11:50:46
:lol
邀月  高级会员 | 2019-12-15 09:44:39
广告位,,坐下看看
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

举报|Archiver|手机版|小黑屋|Lvchakeji Inc.  

Powered by Discuz! X3.3 © 2001-2016 Comsenz Inc.

返回顶部