当前位置: 首页 > 编程日记 > 正文

PHP解决方案@黑名单过滤

为什么80%的码农都做不了架构师?>>>   hot3.png

方案解决目标:对一些黑名单进行过滤处理

                                                                                        function is_spam($text, $file, $split =':', $regex =false){ $handle = fopen($file,'rb'); $contents = fread($handle, filesize($file)); fclose($handle); $lines = explode("n", $contents); $arr = array();foreach($lines as $line){ list($word, $count)= explode($split, $line);if($regex){ $arr[$word]= $count; }else{ $arr[preg_quote($word)]= $count;                                               }} preg_match_all("~".implode('|', array_keys($arr))."~", $text, $matches); $temp = array();foreach($matches[0]as $match){if(!in_array($match, $temp)){ $temp[$match]= $temp[$match]+1;if($temp[$match]>= $arr[$word]) {                    returntrue;                                                                    }            }}returnfalse;    } $file ='spam.txt'; $str ='This string has cat, dog word';if(is_spam($str, $file)) {echo 'this is spam';}else{ echo 'this is not spam';}


输出:

ab:3dog:3cat:2monkey:2



转载于:https://my.oschina.net/rongx/blog/481542

相关文章:

Ubuntu 12.04下玩转终端管理器Byobu

简介 很多Linux高手都喜欢使用screen命令,screen命令可以使你轻松地使用一个终端控制其他终端。尽管screen本身是一个非常有用的工具,byobu作为screen的增强版本,比screen更加好用而且美观,并且提供有用的信息和快捷的热键。 想象…

python字典排序方法_Python字典的排序方法一则

今天需要对Python的字典进行排序,以获得有效的时间序列,采用了如下方法: 首先生成一个示例字典: >>> range_a random.sample(range(0, 10), 10) >>> range_b random.sample(range(10, 20), 10) >>> …

encodeURI 和 encodeURIComponent

保留字符 (reserved characters):这类字符是URI中的保留关键字符,它们用于分割URI中的各个部分。这些字符是:";" | "/" | "?" | ":" | "" | "&&quo…

基于Golang的简单web服务程序开发——CloudGo

基于Golang的简单web服务程序开发——CloudGo【阅读时间:约10分钟】一、概述二、系统环境&项目介绍1.系统环境2.项目的任务要求(1)基本要求(2)扩展要求三、具体程序设计及Golang代码实现1.预先准备2.CloudGoClient…

Android Studio创建项目

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010046908/article/details/47000873 创建项目 首先,先指出Android Studio中的两个概念。 Project和 Module。在Android Studio中, Project的真实含义…

Weiss的数据结构与算法分析(C++版)源码编译说明

最近尝试编译Weiss的那本数据结构与算法分析(C版)提供的源代码时,遇到一些问题,特记录如下:考虑到该书提供的代码是使用模板技术较多,这在提供简洁代码的同时,也给源码的编译带来了一些问题。因…

latex 中文_【小白向】LaTeX 中文入门

注:本文尚未撰写完毕,先暂存一下~(2020/06/27)参考学习路线[1]如何从零开始,入门 LaTeX? 孟晨 1. 卸载 CTeX 套装,安装 TeX Live原因及教程见:TeX Live 下载及安装说明2. 看完:一份其实很短的 L…

物联网兴起 嵌入式系统安全日益受关注

随着越来越多设备连接到互联网,专家们担心嵌入式系统将给企业带来严重安全风险,而很多企业还没有意识到这种风险或者无法缓解这种风险…… 随着越来越多设备连接到互联网,专家们担心嵌入式系统将给企业带来严重安全风险,而很多企业…

【Golang源码分析】Go Web常用程序包gorilla/mux的使用与源码简析

目录【阅读时间:约10分钟】一.概述二.对比: gorilla/mux与net/http DefaultServeMux三.简单使用四.源码简析1.NewRouter函数2.HandleFunc函数设置路由的HTTP方法设置路由的域名限制HTTP 方案设置路径前缀和子路由3.PathPrefix函数五.References一.概述 gorilla/mux…

FileMaker中的腳本觸發器學習筆記

脚本触发器 **脚本触发器是始终绑定到用户布局接口。对于数据表或者字段。只有在而已接口才能触发。**如果某一个布局或者对象上包含触发器,则其右下角会有触发器图标**当触发一个事件时,有且仅有一个触发器会被执行.布局级别的触发器**ONRECORDLOAD :加…

vim学习笔记(四)

下面是我的最近更新&#xff0c;差点删除。 下面的笔记摘自vimtutor。<CR>表示回车 删除命令 在normal模式下&#xff1a; de 删除一个单词&#xff0c;不包含空格 dw 删除一个单词&#xff0c;包含空格 dd 删除当前行 1,10d 删除指定行&#xff0c;第1到10行 ndd…

文件和缓存项目依赖

文件和缓存项目依赖 要创建缓存依赖&#xff0c;你需要创建一个 CacheDependency 对象并在添加依赖的缓存项目时使用它。例如&#xff0c;下面的代码创建一个缓存项目&#xff0c;它在一个 XML 文件被修改、删除、覆盖时自动从缓存中移除&#xff1a; CacheDependency prodDepe…

python函数的基础知识_Python入门基础知识点(函数进阶)

动态参数&#xff1a; 动态接收位置参数&#xff1a; def eat(*args): #在形参位置&#xff0c;*叫做聚合 print(我想吃,args) eat(大米饭,中米饭,小米饭) #收到的结果是一个tuple元祖 动态接收参数的时候要注意: 动态参数必须在位置参数后面&#xff0c;否则&#xff1a; def …

【CentOS】利用Kubeadm部署Kubernetes (K8s)

【CentOS】利用Kubeadm部署Kubernetes &#xff08;K8s&#xff09;【阅读时间&#xff1a;约10分钟】一、概述二、系统环境&项目介绍1.系统环境2.项目的任务要求三、具体实验流程1 系统准备2 安装常用包3 使用aliyun源安装docker-ce4 安装kubectl、kubelet、kubeadm5 初始…

HttpClient4.4 登录知乎(详细过程)

引言 HttpClient是java语言下一个支持http协议的客户端编程工具包&#xff0c;它实现了HTTP协议的所有方法&#xff0c;但是不支持JS渲染。我们在做一些小玩意时&#xff0c;有可能需要登录某些网站获取信息&#xff0c;那么HttpClient就是你的好帮手&#xff0c;废话不多说&am…

vim学习笔记(一)

&#xff1a;vertical sfind 垂直分隔窗口(vsf)&#xff0c;但是两个窗口的内容完全相同。在编辑的时候&#xff0c;内容也完全相同&#xff0c;如果要关闭一个窗口&#xff0c;输入&#xff1a;exit即可&#xff1a;buffers 显示整个缓冲区列表ndG 删除从当前行到指定n行中的…

Retrofit源码研究

2016-05-06 15:35:27 最近抽空研究了一下Retrofit源码&#xff0c;包括API使用、源码结构、使用到的设计模式、SDK的架构设计、作者设计/实现思路等&#xff0c;会形成一系列文章。 以前Retrofit还是1.9的时候&#xff0c;简单的写过一篇文章&#xff0c;简单研究下Retrofit&am…

wpf窗口向左向上_PaperWM:GNOME 下的平铺窗口管理

我使用 Gnome 已有很长时间了&#xff0c;但是我仍然有点想念平铺窗口管理器。六个月前&#xff0c;一个朋友告诉我有关 PaperWM 的消息&#xff0c;它使你可以在 Gnome 中平铺窗口&#xff01;我立即安装了它&#xff0c;并从那时起我一直在使用它。-- Julia Evans(作者)当我开…

Docker的安装、镜像源更换与简单应用

Docker的安装、镜像源更换与简单应用【阅读时间&#xff1a;约20分钟】一、概述二、系统环境&项目介绍1.系统环境2.项目的任务要求三、Docker的安装四、Docker的简单应用1. 运行第一个容器2. Docker基本操作3. MySQL与容器化3.1 拉取MySQL镜像3.2 构建docker镜像3.3 MySQL容…

vim学习笔记(三)

1.vim的配置文件在哪里&#xff1f;在normal模式下输入:echo $VIMVim的主配置文件为vimrc文件&#xff0c;它分为两个版本&#xff1a;global和personal&#xff0c;其中前者一般在/usr/share/vim/vimrc&#xff0c;后者一般在~/.vimrc,它是一个隐藏文件找到home目录的方法:ech…

python 学术_Python

前几天实验室一个师兄给我一个质谱结果&#xff0c;让帮忙做下go的功能富集&#xff0c;数据格式大概是这样的&#xff1a;由于之前做go和kegg时都是跑流程&#xff0c;像这种针对性的go富集还没做过&#xff0c;说到底&#xff0c;还是由于自己手上缺少数据&#xff0c;没有属…

Hive的Security配置

为了更好地使用好Hive&#xff0c;我将《Programming Hive》的Security章节取出来&#xff0c;翻译了一下。 Hive还是支持相当多的权限管理功能&#xff0c;满足一般数据仓库的使用。 Hive由一个默认的设置来配置新建文件的默认权限。 Xml代码 <property> <name>…

Docker安装Apache与运行简单的web服务——httpd helloworld

Docker运行简单的web服务——httpd helloworld目录【阅读时间&#xff1a;约5分钟】一、Docker简介二、Docker的安装与配置【CentOS环境】三、Docker运行简单的web服务——httpd helloworld四、References一、Docker简介 Docker 是一个开源的应用容器引擎&#xff0c;让开发者…

在CentOS 6.2上搭建vim开发环境

在CentOS 6.2上搭建vim开发环境最后更新日期&#xff1a;2013-07-051.首先使用Ubuntu&#xff08;所在ip为192.168.16.230&#xff09;翻墙登陆http://www.vim.org/&#xff0c;下载其上面的vim相关插件到Ubuntu的下载目录下&#xff1a;cd ~/下载/http://ctags.sourceforge.ne…

python基础(三元运算+深浅拷贝+函数参数)

三元运算 三元运算&#xff0c;又称三目运算&#xff0c;主要作用是减少代码量&#xff0c;是对简单的条件语句的缩写。 1 书写格式&#xff1a; 2 result 值1 if 条件 else 值2 3 即如果条件成立&#xff0c;则将值1赋给result变量&#xff0c;如果不成立&#xff0c;将值2赋…

pythonapi是什么_python接口自动化(一)--什么是接口、接口优势、类型(详解)...

简介经常听别人说接口测试&#xff0c;接口测试自动化&#xff0c;但是你对接口&#xff0c;有多少了解和认识&#xff0c;知道什么是接口吗&#xff1f;它是用来做什么的&#xff0c;测试时候要注意什么&#xff1f;坦白的说&#xff0c;笔者之前也不是很清楚。接下来先看一下…

【阶段小结】协同开发——这学期的Git使用小结

【阶段小结】协同开发——这学期的Git使用小结一、Git简介1. Git简单介绍2. Git工作流程以及各个区域3. Git文件状态变化二、Git安装&Git基本配置三、个人踩坑1. xcode project“抽风式”问题2. 如何拯救git仓库一、Git简介 1. Git简单介绍 Git是一个分布式版本控制软件&…

PHP函数printf()、sprintf()的用法

printf()函数优点在于可以格式化输出 格式: %[padding_character][-][width][.precision]type 所有的转换说明都是以%开始,如果想打印一个%符号,必须用%% &#xff1b; 参数“padding_character”是可选&#xff0c;它将被用来填充变量直至所指定的宽度&#xff0c;该参数的作用…

20150411--Dede二次开发-01

20150411--Dede二次开发-01 目录 一、目前市场流行的电子商城系统 1 二、ecshop的介绍 1 三、安装 2 四、echsop 的目录结构 5 五、分析ecshop里面程序的架构 5 六、小试牛刀把面包屑导航改成两个大于号 6 1、根据php页面找出该页面对应的模板。 6 2、找到category.dwt模板文件…

修改cpu型号重启不变_猫头鹰展示D系列新款140毫米CPU散热器:更大散热片,能压400瓦...

猫头鹰一直以超强的CPU风冷散热器在电脑配件市场闻名遐迩&#xff0c;在台北电脑展期间&#xff0c;除了展出了概念性的无风扇CPU散热器&#xff0c;还宣布了发布D系列新款CPU散热器的计划。新的未命名的散热器相比与目前的NH-D15和NH-D15S型号要多一根热管&#xff0c;性能进一…