使用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 相关文章推荐
新版mysql+apache+php Linux安装指南
Oct 09 PHP
php单件模式结合命令链模式使用说明
Sep 07 PHP
php中时间轴开发(刚刚、5分钟前、昨天10:23等)
Oct 03 PHP
php简单图像创建入门实例
Jun 10 PHP
两种php去除二维数组的重复项方法
Nov 04 PHP
Symfony2实现在controller中获取url的方法
Mar 18 PHP
PHP安装GeoIP扩展根据IP获取地理位置及计算距离的方法
Jul 01 PHP
基于PHP实现微信小程序客服消息功能
Aug 12 PHP
Thinkphp5框架ajax接口实现方法分析
Aug 28 PHP
laravel-admin 实现在指定的相册下添加照片
Oct 21 PHP
laravel框架数据库操作、查询构建器、Eloquent ORM操作实例分析
Dec 20 PHP
PHP实现倒计时功能
Nov 16 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中操作MySQL数据库的一些要注意的问题
2006/10/09 PHP
php中并发读写文件冲突的解决方案
2013/10/25 PHP
php+ajax注册实时验证功能
2016/07/20 PHP
PHP简单字符串过滤方法示例
2016/09/04 PHP
PHP开发中解决并发问题的几种实现方法分析
2017/11/13 PHP
JavaScript Cookie 直接浏览网站分网址
2009/12/08 Javascript
关于JavaScript中原型继承中的一点思考
2012/07/25 Javascript
js截取固定长度的中英文字符的简单实例
2013/11/22 Javascript
写JQuery插件的基本知识
2013/11/25 Javascript
js判断浏览器版本以及浏览器内核的方法
2015/01/20 Javascript
node.js集成百度UE编辑器
2015/02/05 Javascript
javascript中in运算符用法分析
2015/04/28 Javascript
jQuery+ajax实现文章点赞功能的方法
2015/12/31 Javascript
js判断文件格式及大小的简单实例(必看)
2016/10/11 Javascript
vue2.0构建单页应用最佳实战
2017/04/01 Javascript
JS中获取 DOM 元素的绝对位置实例详解
2018/04/23 Javascript
弱类型语言javascript中 a,b 的运算实例小结
2019/08/07 Javascript
微信小程序 函数防抖 解决重复点击消耗性能问题实现代码
2019/09/12 Javascript
微信小程序实现电影App导航和轮播
2020/11/30 Javascript
关于Python中异常(Exception)的汇总
2017/01/18 Python
Python编程实现正则删除命令功能
2017/08/30 Python
python opencv捕获摄像头并显示内容的实现
2019/07/11 Python
python pandas 时间日期的处理实现
2019/07/30 Python
基于python2.7实现图形密码生成器的实例代码
2019/11/05 Python
Python django搭建layui提交表单,表格,图标的实例
2019/11/18 Python
Python3和pyqt5实现控件数据动态显示方式
2019/12/13 Python
2020年10款优秀的Python第三方库,看看有你中意的吗?
2021/01/12 Python
Probikekit欧盟:在线公路自行车专家
2019/07/12 全球购物
What's the difference between Debug and Trace class? (Debug类与Trace类有什么区别)
2013/09/10 面试题
简历里的自我评价
2014/01/31 职场文书
欢迎领导标语
2014/06/27 职场文书
聚会通知怎么写
2015/04/23 职场文书
撤诉书怎么写
2015/05/19 职场文书
嘉年华活动新闻稿
2015/07/17 职场文书
法律服务所工作总结
2015/08/10 职场文书
Python基础之函数嵌套知识总结
2021/05/23 Python