使用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 相关文章推荐
PHP 选项及相关信息函数库
Dec 04 PHP
mysql4.1以上版本连接时出现Client does not support authentication protocol问题解决办法
Mar 15 PHP
mysql 搜索之简单应用
Apr 27 PHP
php MYSQL 数据备份类
Jun 19 PHP
PHP读取XML值的代码(推荐)
Jan 01 PHP
PHP批量采集下载美女图片的实现代码
Jun 03 PHP
PHP获取浏览器信息类和客户端地理位置的2个方法
Apr 24 PHP
Symfony2学习笔记之控制器用法详解
Mar 17 PHP
php把字符串指定字符分割成数组的方法
Mar 12 PHP
PHP设计模式之模板方法模式定义与用法详解
Apr 02 PHP
Laravel 集成微信用户登录和绑定的实现
Dec 27 PHP
PHP设计模式之迭代器模式Iterator实例分析【对象行为型】
Apr 26 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
在任意字符集下正常显示网页的方法二(续)
2007/04/01 PHP
Windows下安装PHP单元测试环境PHPUnit图文教程
2014/10/24 PHP
PHP处理大量表单字段的便捷方法
2015/02/07 PHP
php两种无限分类方法实例
2015/04/21 PHP
Smarty实现页面静态化(生成HTML)的方法
2016/05/23 PHP
thinkPHP中volist标签用法示例
2016/12/06 PHP
laravel框架路由分组,中间件,命名空间,子域名,路由前缀实例分析
2020/02/18 PHP
JSON 入门指南 想了解json的朋友可以看下
2009/08/26 Javascript
HTML中的setCapture和releaseCapture使用介绍
2012/03/21 Javascript
jQuery对下拉框,单选框,多选框的操作
2014/02/21 Javascript
js控制容器隐藏出现防止样式变化的两种方法
2014/04/25 Javascript
jquery实现鼠标滑过显示二级下拉菜单效果
2015/08/24 Javascript
jquery的ajax提交form表单的两种方法小结(推荐)
2016/05/25 Javascript
带有定位当前位置的百度地图前端web api实例代码
2016/06/21 Javascript
JavaScript6 let 新语法优势介绍
2016/07/15 Javascript
JavaScript队列、优先队列与循环队列
2016/11/14 Javascript
Web前端框架bootstrap实战【第一次接触使用】
2016/12/28 Javascript
基于Vue的文字跑马灯组件(npm 组件包)
2017/05/24 Javascript
详解vuex的简单todolist例子
2019/07/14 Javascript
JavaScript 格式化数字、金额、千分位、保留几位小数、舍入舍去
2019/07/23 Javascript
[47:42]Fnatic vs Liquid 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
Python自动登录126邮箱的方法
2015/07/10 Python
基于python实现在excel中读取与生成随机数写入excel中
2018/01/04 Python
TensorFlow 滑动平均的示例代码
2018/06/19 Python
从请求到响应过程中django都做了哪些处理
2018/08/01 Python
Python生成rsa密钥对操作示例
2019/04/26 Python
python BlockingScheduler定时任务及其他方式的实现
2019/09/19 Python
python脚本实现音频m4a格式转成MP3格式的实例代码
2019/10/09 Python
python pip安装包出现:Failed building wheel for xxx错误的解决
2019/12/25 Python
canvas 实现 github404动态效果的示例代码
2017/11/15 HTML / CSS
我爱我的祖国演讲稿
2014/05/04 职场文书
区长工作作风个人整改措施
2014/10/01 职场文书
校园运动会广播稿
2014/10/06 职场文书
开学随笔
2015/08/15 职场文书
如何做好工作总结!
2019/04/10 职场文书
SpringBoot详解整合Redis缓存方法
2022/07/15 Java/Android