使用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 相关文章推荐
如何删除多级目录
Oct 09 PHP
PHP 实例化类的一点摘记
Mar 23 PHP
PHP 小心urldecode引发的SQL注入漏洞
Oct 27 PHP
JSON在PHP中的应用介绍
Sep 08 PHP
php实现文件下载(支持中文文名)
Dec 04 PHP
phpphp图片采集后按原路径保存图片示例
Feb 18 PHP
php使用pack处理二进制文件的方法
Jul 03 PHP
CodeIgniter针对lighttpd服务器URL重写的方法
Jun 10 PHP
Zend Framework教程之Zend_Form组件实现表单提交并显示错误提示的方法
Mar 21 PHP
PHP 中TP5 Request 请求对象的实例详解
Jul 31 PHP
php新建文件的方法实例
Sep 26 PHP
PHPStorm2020.1永久激活及下载更新至2020(推荐)
Sep 25 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
Laravel中使用自己编写类库的3种方法
2015/02/10 PHP
在Mac OS下搭建LNMP开发环境的步骤详解
2017/03/10 PHP
JQuery学习笔录 简单的JQuery
2012/04/09 Javascript
jquery使用淘宝接口跨域查询手机号码归属地实例
2013/11/28 Javascript
JS使用replace()方法和正则表达式进行字符串的搜索与替换实例
2014/04/10 Javascript
jQuery添加/改变/移除CSS类及判断是否已经存在CSS
2014/08/20 Javascript
完美兼容各大浏览器的jQuery插件实现图片切换特效
2014/12/12 Javascript
浅谈JavaScript中面向对象的的深拷贝和浅拷贝
2016/08/01 Javascript
node学习记录之搭建web服务器教程
2017/02/16 Javascript
基于JavaScript实现图片连播和联级菜单实例代码
2017/07/28 Javascript
BootStrap Table实现server分页序号连续显示功能(当前页从上一页的结束序号开始)
2017/09/12 Javascript
layui自定义插件citySelect实现省市区三级联动选择
2019/07/26 Javascript
vue输入节流,避免实时请求接口的实例代码
2019/10/30 Javascript
2019年度web前端面试题总结(主要为Vue面试题)
2020/01/12 Javascript
浅谈element中InfiniteScroll按需引入的一点注意事项
2020/06/05 Javascript
[01:34:42]NAVI vs EG 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/17 DOTA
Python获取远程文件大小的函数代码分享
2014/05/13 Python
简单谈谈Python中的反转字符串问题
2016/10/24 Python
python 删除非空文件夹的实例
2018/04/26 Python
Python3编码问题 Unicode utf-8 bytes互转方法
2018/10/26 Python
详解CSS3的perspective属性设置3D变换距离的方法
2016/05/23 HTML / CSS
美国药妆网站:EDCskincare.com(防晒、痤疮、抗衰老等)
2017/04/28 全球购物
Opodo英国旅游网站:预订廉价航班、酒店和汽车租赁
2018/07/14 全球购物
网上卖盒饭创业计划书范文
2014/02/07 职场文书
工伤事故赔偿协议书
2014/04/15 职场文书
2014年敬老院工作总结
2014/12/08 职场文书
行政助理岗位职责范本
2015/04/11 职场文书
2015年消防工作总结
2015/04/24 职场文书
婚育证明格式
2015/06/17 职场文书
合理化建议书范文
2015/09/14 职场文书
暑假开始了,你的暑假学习计划写好了吗?
2019/07/04 职场文书
适合毕业生创业的项目怎么找?
2019/08/08 职场文书
golang 语言中错误处理机制
2021/08/30 Golang
苹果M1芯片安装nginx 并且部署vue项目步骤详解
2021/11/20 Servers
深入解析Apache Hudi内核文件标记机制
2022/03/31 Servers
Nginx静态压缩和代码压缩提高访问速度详解
2022/05/30 Servers