使用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 实例化类的一点摘记
Mar 23 PHP
php数组去重的函数代码
Feb 03 PHP
探讨如何使用SimpleXML函数来加载和解析XML文档
Jun 07 PHP
PHP使用CURL_MULTI实现多线程采集的例子
Jul 29 PHP
Zend Guard使用指南及问题处理
Jan 07 PHP
ThinkPHP提示错误Fatal error: Allowed memory size的解决方法
Feb 12 PHP
php实现ip白名单黑名单功能
Mar 12 PHP
学习php设计模式 php实现状态模式
Dec 07 PHP
PHP4和PHP5版本下解析XML文档的操作方法实例分析
May 20 PHP
php单元测试phpunit入门实例教程
Nov 17 PHP
在laravel5.2中实现点击用户头像更改头像的方法
Oct 14 PHP
Yii 框架使用Forms操作详解
May 18 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缓存技术介绍
2006/11/25 PHP
php动态函数调用方法
2015/05/21 PHP
学习php设计模式 php实现工厂模式(factory)
2015/12/07 PHP
Zend Framework教程之Application用法实例详解
2016/03/14 PHP
php常用字符串String函数实例总结【转换,替换,计算,截取,加密】
2016/12/07 PHP
php安全配置记录和常见错误梳理(总结)
2017/03/28 PHP
通过PHP实现用户注册后邮箱验证激活
2020/11/10 PHP
FF火狐下获取一个元素同类型的相邻元素实现代码
2012/12/15 Javascript
原生javascript和jquery判断浏览器版本等信息
2013/07/04 Javascript
点击按钮或链接不跳转只刷新页面的脚本整理
2013/10/22 Javascript
使用node.js 制作网站前台后台
2014/11/13 Javascript
JSONP和批量操作功能的实现方法
2016/08/21 Javascript
又一款MVVM组件 构建自己的Vue组件(2)
2017/03/13 Javascript
如何使node也支持从url加载一个module详解
2018/06/05 Javascript
微信小程序自定义带价格显示日历效果
2018/12/29 Javascript
nodejs实现的http、https 请求封装操作示例
2020/02/06 NodeJs
通过js随机函数Math.random实现乱序
2020/05/19 Javascript
[14:00]DOTA2国际邀请赛史上最长大战 赛后专访B神
2013/08/10 DOTA
[01:02:25]2014 DOTA2华西杯精英邀请赛5 24 NewBee VS VG
2014/05/25 DOTA
[44:33]EG vs Liquid 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
[58:59]完美世界DOTA2联赛PWL S3 access vs CPG 第一场 12.13
2020/12/16 DOTA
在树莓派2或树莓派B+上安装Python和OpenCV的教程
2015/03/30 Python
使用Python的Flask框架构建大型Web应用程序的结构示例
2016/06/04 Python
TensorFlow实现Softmax回归模型
2018/03/09 Python
Python API 自动化实战详解(纯代码)
2019/06/11 Python
非常震撼的纯CSS3人物行走动画
2016/02/24 HTML / CSS
西班牙太阳镜品牌:Hawkers
2018/03/11 全球购物
大四学生个人总结
2015/02/15 职场文书
幼儿园工作总结2015
2015/04/01 职场文书
忠诚与背叛观后感
2015/06/04 职场文书
画展观后感
2015/06/17 职场文书
JavaScript实现复选框全选功能
2021/04/11 Javascript
Python爬虫基础之初次使用scrapy爬虫实例
2021/06/26 Python
Python NumPy灰度图像的压缩原理讲解
2021/08/04 Python
MySQL学习之基础命令实操总结
2022/03/19 MySQL
JS前端监控采集用户行为的N种姿势
2022/07/23 Javascript