使用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 相关文章推荐
PHP5 安装方法
Jan 15 PHP
PHP URL地址获取函数代码(端口等) 推荐
May 15 PHP
php下连接mssql2005的代码
Jan 17 PHP
PHP session_start()问题解疑(详细介绍)
Jul 05 PHP
php一次性删除前台checkbox多选内容的方法
Sep 22 PHP
解读PHP中上传文件的处理问题
May 29 PHP
php解析base64数据生成图片的方法
Dec 06 PHP
php从身份证获取性别和出生年月
Feb 09 PHP
PHP使用imagick扩展实现合并图像的方法
Apr 25 PHP
visual studio code 调试php方法(图文详解)
Sep 15 PHP
Laravel中Facade的加载过程与原理详解
Sep 22 PHP
PHP pthreads v3下worker和pool的使用方法示例
Feb 21 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
linux iconv方法的使用
2011/10/01 PHP
PHP连接SQLSERVER 注意事项(附dll文件下载)
2012/06/28 PHP
浅析PHP开发规范
2018/02/05 PHP
在你的网页中嵌入外部网页的方法
2007/04/02 Javascript
Add a Formatted Table to a Word Document
2007/06/15 Javascript
Jquery作者John Resig自己封装的javascript 常用函数
2009/11/09 Javascript
jquery获得keycode的示例代码
2013/12/30 Javascript
Javasipt:操作radio标签详解
2013/12/30 Javascript
JS制作简单的三级联动
2015/03/18 Javascript
avalonjs实现仿微博的图片拖动特效
2015/05/06 Javascript
JS产生随机数的几个用法详解
2016/06/22 Javascript
jQuery 3.0十大新特性
2016/07/06 Javascript
AngularJs基于角色的前端访问控制的实现
2016/11/07 Javascript
Node.js开发第三方微信公众平台
2017/06/05 Javascript
jQuery与vue实现拖动验证码功能
2018/01/30 jQuery
利用npm 安装删除模块的方法
2018/05/15 Javascript
Angular2中监听数据更新的方法
2018/08/31 Javascript
JS散列表碰撞处理、开链法、HashTable散列示例
2019/02/08 Javascript
python3简单实现微信爬虫
2015/04/09 Python
Python+微信接口实现运维报警
2016/08/27 Python
Python 基于Twisted框架的文件夹网络传输源码
2016/08/28 Python
Python2随机数列生成器简单实例
2017/09/04 Python
python 读入多行数据的实例
2018/04/19 Python
Python tkinter的grid布局及Text动态显示方法
2018/10/11 Python
Python通过TensorFlow卷积神经网络实现猫狗识别
2019/03/14 Python
python自带tkinter库实现棋盘覆盖图形界面
2019/07/17 Python
解决python 上传图片限制格式问题
2019/10/30 Python
python logging模块的使用
2020/09/07 Python
英国乐购杂货:Tesco Groceries
2018/11/29 全球购物
历史学专业个人的自我评价
2013/10/13 职场文书
创业计划书的内容步骤和要领
2014/01/04 职场文书
群教班子对照检查材料
2014/08/26 职场文书
交通事故和解协议书
2015/01/27 职场文书
JavaScript 原型与原型链详情
2021/11/02 Javascript
Spring this调用当前类方法无法拦截的示例代码
2022/03/20 Java/Android
一文搞懂Java中的注解和反射
2022/06/21 Java/Android