使用PHP实现阻止用户上传成人照片或者裸照


Posted in PHP onDecember 25, 2014

 在这份教程中,我们将会学习到如何阻止用户通过PHP上传成人照片或者裸照.

我在phpclasses.org上面偶然发现一个很有用的,由Bakr Alsharif开发的可以帮助开发者基于皮肤像素点来检测图片裸照的类文件.

它会分析在一张图片的不同部分使用的颜色,并决定其是否匹配人类皮肤颜色的色调.

作为分析的结果,他会返回一个反映图片包含裸露的可能性的分值.

此外,他还可以输出被分析的图片,上面对使用给定颜色的肤色的像素进行了标记.

当前它可以对PNG,GIF和JPEG图片进行分析.

PHP

下面展示了如何使用这个PHP类.

让我们先从包含裸体过滤器,nf.php文件开始.

include ('nf.php');

接下来,创建一个新的名叫ImageFilter的类,然后把它放到一个叫做$filter的变量中.

$filter = new ImageFilter;

获取图片的分值并将其放到一个$score变量中.

$score = $filter -> GetScore($_FILES['img']['tmp_name']);

如果图片分值大于或等于60%,那就展示一条(告警)消息.

if($score >= 60){

/*Message*/

}

下面是所有的PHP代码:

<?php

/*Include the Nudity Filter file*/

include ('nf.php');

/*Create a new class called $filter*/

$filter = new ImageFilter;

/*Get the score of the image*/

$score = $filter -> GetScore($_FILES['img']['tmp_name']);

/*If the $score variable is set*/

if (isset($score)) {

    /*If the image contains nudity, display image score and message. Score value if more than 60%, it is considered an adult image.*/

    if ($score >= 60) {

        echo "Image scored " . $score . "%, It seems that you have uploaded a nude picture.";

    /*If the image doesn't contain nudity*/    

    } else if ($score < 0) {

        echo "Congratulations, you have uploaded an non-nude image.";

    }

}

?>

标记语言

我们可以使用一个基础的HTML表单上传图片.

<form method="post" enctype="multipart/form-data" action="<?php echo $SERVER['PHP_SELF'];?> ">

Upload image: 

<input type="file" name="img" id="img" />

<input type="submit" value="Sumit Image" />

</form>

总结

请记得,PHP不能够检测所有的裸体图片,所以不完全可信.我希望你觉得这还有点用处.

PHP 相关文章推荐
Windows下XDebug 手工配置与使用说明
Jul 11 PHP
php中使用临时表查询数据的一个例子
Feb 03 PHP
PHP APC的安装与使用详解
Jun 13 PHP
ThinkPHP模板之变量输出、自定义函数与判断语句用法
Nov 01 PHP
thinkphp使用literal防止模板标签被解析的方法
Nov 22 PHP
PHP中Memcache操作类及用法实例
Dec 12 PHP
9个经典的PHP代码片段分享
Dec 18 PHP
详解PHP归并排序的实现
Oct 18 PHP
PHP数组操作实例分析【添加,删除,计算,反转,排序,查找等】
Dec 24 PHP
php 将json格式数据转换成数组的方法
Aug 21 PHP
php使用gearman进行任务分发操作实例详解
Feb 26 PHP
PHP程序员简单的开展服务治理架构操作详解(二)
May 14 PHP
浅析PHP文件下载原理
Dec 25 #PHP
php使用sql server验证连接数据库的方法
Dec 25 #PHP
php实现mysql事务处理的方法
Dec 25 #PHP
php使用pdo连接mssql server数据库实例
Dec 25 #PHP
php连接与操作PostgreSQL数据库的方法
Dec 25 #PHP
完整删除ecshop中获取店铺信息的API
Dec 24 #PHP
php连接odbc数据源并保存与查询数据的方法
Dec 24 #PHP
You might like
php实现的css文件背景图片下载器代码
2014/11/11 PHP
php验证邮箱和ip地址最简单方法汇总
2015/10/30 PHP
php解决和避免form表单重复提交的几种方法
2016/08/31 PHP
Laravel ORM 数据model操作教程
2019/10/21 PHP
javascript中的undefined 与 null 的区别  补充篇
2010/03/17 Javascript
纯JavaScript实现的完美渐变弹出层效果代码
2010/04/02 Javascript
基于Jquery制作的幻灯片图集效果打包下载
2011/02/12 Javascript
使用jquery实现select添加实现后台权限添加的效果
2011/05/28 Javascript
js有序数组的连接问题
2013/10/01 Javascript
JS实现鼠标单击与双击事件共存
2014/03/08 Javascript
JS实现表单中checkbox对勾选中增加边框显示效果
2015/08/21 Javascript
不用一句js代码初始化组件
2016/01/27 Javascript
jQuery+Ajax实现限制查询间隔的方法
2016/06/07 Javascript
javascript时间戳和日期字符串相互转换代码(超简单)
2016/06/22 Javascript
基于JavaScript实现自动更新倒计时效果
2016/12/19 Javascript
JavaScript字符串_动力节点Java学院整理
2017/06/27 Javascript
ES6中新增的Object.assign()方法详解
2017/09/22 Javascript
AngularJS路由删除#符号解决的办法
2017/09/28 Javascript
如何让微信小程序页面之间的通信不再变困难
2019/06/03 Javascript
如何基于原生javaScript生成带图片的二维码
2019/11/21 Javascript
vue滑动吸顶及锚点定位的示例代码
2020/05/10 Javascript
[03:59]第二届DOTA2亚洲邀请赛选手传记-VGJ.rOtk
2017/04/03 DOTA
零基础写python爬虫之使用Scrapy框架编写爬虫
2014/11/07 Python
Python smallseg分词用法实例分析
2015/05/28 Python
flask 使用 flask_apscheduler 做定时循环任务的实现
2019/12/10 Python
新年福利来一波之Python轻松集齐五福(demo)
2020/01/20 Python
Python使用GitPython操作Git版本库的方法
2020/02/29 Python
传统HTML页面实现模块化加载的方法
2018/10/15 HTML / CSS
英国时尚配饰、珠宝和服装网站:KJ Beckett
2020/01/23 全球购物
计算机应用专业毕业生求职信
2013/10/24 职场文书
怎样填写就业意向
2014/04/02 职场文书
争先创优活动总结
2014/08/27 职场文书
大学生个人简历自荐信
2015/03/06 职场文书
2015迎新晚会活动总结
2015/07/16 职场文书
早安问候语大全
2015/11/10 职场文书
2016春季幼儿园小班开学寄语
2015/12/03 职场文书