使用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中Session的概念
Oct 09 PHP
批量去除PHP文件中bom的PHP代码
Mar 13 PHP
php的一个简单加密解密代码
Jan 14 PHP
ThinkPHP学习笔记(一)ThinkPHP部署
Jun 22 PHP
ThinkPHP使用smarty模板引擎的方法
Jul 01 PHP
php最简单的删除目录与文件实现方法
Nov 28 PHP
php使用explode()函数将字符串拆分成数组的方法
Feb 17 PHP
PHP串行化与反串行化实例分析
Dec 27 PHP
thinkphp中U方法按路由规则生成url的方法
Mar 12 PHP
使用PHP访问RabbitMQ消息队列的方法示例
Jun 06 PHP
PHP实现的AES加密、解密封装类与用法示例
Aug 02 PHP
Laravel6.0.4中将添加计划任务事件的方法步骤
Oct 15 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
Mysql和网页显示乱码解决方法集锦
2008/03/27 PHP
PHP 输出缓存详解
2009/06/20 PHP
PHP获取http请求的头信息实现步骤
2012/12/16 PHP
浅析php与数据库代码开发规范
2013/08/08 PHP
深入解读php中关于抽象(abstract)类和抽象方法的问题分析
2014/01/03 PHP
destoon实现调用当前栏目分类及子分类和三级分类的方法
2014/08/21 PHP
PHP的运行机制与原理(底层)
2015/11/16 PHP
JavaScript 函数调用规则
2009/09/14 Javascript
写出更好的JavaScript程序之undefined篇(中)
2009/11/23 Javascript
Javascript玩转继承(一)
2014/05/08 Javascript
Javascript动画的实现原理浅析
2015/03/02 Javascript
详解JavaScript中双等号引起的隐性类型转换
2016/05/30 Javascript
jQuery获取浏览器类型和版本号的方法
2016/07/05 Javascript
浅谈jquery的html方法里包含特殊字符的处理
2016/11/30 Javascript
深入学习jQuery中的data()
2016/12/22 Javascript
jQuery插件版本冲突的处理方法分析
2017/01/16 Javascript
jQuery除指定区域外点击任何地方隐藏DIV功能
2017/11/13 jQuery
详解vue项目中调用百度地图API使用方法
2019/04/25 Javascript
JavaScript的Proxy可以做哪些有意思的事儿
2019/06/15 Javascript
微信公众号服务器验证Token步骤图解
2019/12/30 Javascript
Element-UI+Vue模式使用总结
2020/01/02 Javascript
小程序双头slider选择器的实现示例
2020/03/31 Javascript
如何检测JavaScript中的死循环示例详解
2020/08/30 Javascript
Express 配置HTML页面访问的实现
2020/11/01 Javascript
JavaScript实现消消乐的源代码
2021/01/12 Javascript
Python远程桌面协议RDPY安装使用介绍
2015/04/15 Python
浅谈python中set使用
2016/06/30 Python
Python复数属性和方法运算操作示例
2017/07/21 Python
socket + select 完成伪并发操作的实例
2017/08/15 Python
Python3如何使用多线程升程序运行速度
2020/08/11 Python
市场部经理岗位职责
2014/04/10 职场文书
2015年体检中心工作总结
2015/05/27 职场文书
红歌会主持词
2015/07/02 职场文书
python通过opencv调用摄像头操作实例分析
2021/06/07 Python
Python+Matplotlib图像上指定坐标的位置添加文本标签与注释
2022/04/11 Python
JS实现简单的九宫格抽奖
2022/06/28 Javascript