编写PHP脚本过滤用户上传的图片


Posted in PHP onJuly 03, 2015

示例   下载

我在phpclasses.org上面偶然发现一个很有用的,由Bakr Alsharif开发的可以帮助开发者基于皮肤像素点来检测图片裸照的类文件.

它会分析在一张图片的不同部分使用的颜色,并决定其是否匹配人类皮肤颜色的色调.

作为分析的结果,他会返回一个反映图片包含裸露的可能性的分值.

此外,他还可以输出被分析的图片,上面对使用给定颜色的肤色的像素进行了标记.

当前它可以对PNG,GIF和JPEG图片进行分析.

下面展示了如何使用这个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中的extract的作用分析
Apr 09 PHP
php5数字型字符串加解密代码
Apr 24 PHP
php 魔术方法使用说明
Oct 20 PHP
PHP 5.3 下载时 VC9、VC6、Thread Safe、Non Thread Safe的区别分析
Mar 28 PHP
php在线解压ZIP文件的方法
Dec 30 PHP
PHP树的深度编历生成迷宫及A*自动寻路算法实例分析
Mar 10 PHP
php示例详解Constructor Prototype Pattern 原型模式
Oct 15 PHP
PHP数组函数知识汇总
May 12 PHP
PHP类型约束用法示例
Sep 28 PHP
php编程实现简单的网页版计算器功能示例
Apr 26 PHP
PHP 中使用explode()函数切割字符串为数组的示例
May 06 PHP
ThinkPHP实现转换数据库查询结果数据到对应类型的方法
Nov 16 PHP
在Windows系统下使用PHP生成Word文档的教程
Jul 03 #PHP
深入理解PHP中的Streams工具
Jul 03 #PHP
列举PHP的Yii 2框架的开发优势
Jul 03 #PHP
PHP中异常处理的一些方法整理
Jul 03 #PHP
在PHP程序中使用Rust扩展的方法
Jul 03 #PHP
PHP整合七牛实现上传文件
Jul 03 #PHP
ThinkPHP自定义函数解决模板标签加减运算的方法
Jul 03 #PHP
You might like
基于递归实现的php树形菜单代码
2014/11/19 PHP
php使用curl伪造来源ip和refer的方法示例
2018/05/08 PHP
Laravel学习笔记之Artisan命令生成自定义模板的方法
2018/11/22 PHP
php设计模式之职责链模式实例分析【星际争霸游戏案例】
2020/03/27 PHP
用showModalDialog弹出页面后,提交表单总是弹出一个新窗口
2009/07/18 Javascript
JQuery中对服务器控件 DropdownList, RadioButtonList, CheckboxList的操作总结
2011/06/28 Javascript
jquery滚动组件(vticker.js)实现页面动态数据的滚动效果
2013/07/03 Javascript
一个非常全面的javascript URL解析函数和分段URL解析方法
2014/04/12 Javascript
超实用的JavaScript表单代码段
2016/02/26 Javascript
JavaScript常用函数工具集:lao-utils
2016/03/01 Javascript
深入浅析JavaScript中的arguments对象(强力推荐)
2016/06/03 Javascript
原生js实现addclass,removeclass,toggleclasss实例
2016/11/24 Javascript
JavaScript如何获取到导航条中HTTP信息
2017/10/10 Javascript
微信小程序自定义tab实现多层tab嵌套功能
2018/06/15 Javascript
vue-cli 默认路由再子路由选中下的选中状态问题及解决代码
2018/09/06 Javascript
arctext.js实现文字平滑弯曲弧形效果的插件
2019/05/13 Javascript
javascript异步编程的六种方式总结
2019/05/17 Javascript
webgl实现物体描边效果的方法介绍
2019/11/27 Javascript
CKEditor扩展插件:自动排版功能autoformat插件实现方法详解
2020/02/06 Javascript
python实现自动获取IP并发送到邮箱
2018/12/26 Python
浅谈python3中input输入的使用
2019/08/02 Python
图文详解Django使用Pycharm连接MySQL数据库
2019/08/09 Python
Python datetime包函数简单介绍
2019/08/28 Python
基于pygame实现童年掌机打砖块游戏
2020/02/25 Python
Python多线程操作之互斥锁、递归锁、信号量、事件实例详解
2020/03/24 Python
Python docutils文档编译过程方法解析
2020/06/23 Python
德国箱包网上商店:koffer24.de
2016/07/27 全球购物
HTC VIVE美国官网:VR虚拟现实眼镜
2018/02/13 全球购物
UNDONE手表官网:世界领先的定制手表品牌
2018/11/13 全球购物
Clarks鞋澳大利亚官方网站:Clarks Australia
2019/12/25 全球购物
一名老师的自我评价
2014/02/07 职场文书
大学生简短的自我评价
2014/09/12 职场文书
装修公司管理制度
2015/08/05 职场文书
python geopandas读取、创建shapefile文件的方法
2021/06/29 Python
以下牛机,你有几个
2022/04/05 无线电
Windows11 Insider Preview Build 25206今日发布 更新内容汇总
2022/09/23 数码科技