编写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使用filter过滤器验证邮箱 ipv6地址 url验证
Dec 25 PHP
php实现文件编码批量转换
Mar 10 PHP
thinkphp实现数组分页示例
Apr 13 PHP
PHP 面向对象程序设计(oop)学习笔记(三) - 单例模式和工厂模式
Jun 12 PHP
Yii不依赖Model的表单生成器用法实例
Dec 04 PHP
typecho插件编写教程(六):调用接口
May 28 PHP
php中删除、清空session的方式总结
Oct 09 PHP
[原创]php简单隔行变色功能实现代码
Jul 09 PHP
PHP简单字符串过滤方法示例
Sep 04 PHP
PHP简单遍历对象示例
Sep 28 PHP
PHP巧妙利用位运算实现网站权限管理的方法
Mar 12 PHP
PHP+Ajax实现的检测用户名功能简单示例
Feb 12 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多维数组转一维数组的简单实现方法
2015/12/23 PHP
Yii2实现让关联字段支持搜索功能的方法
2016/08/10 PHP
Laravel 队列使用的实现
2019/01/08 PHP
PHP Swoole异步读取、写入文件操作示例
2019/10/24 PHP
javascript当onmousedown、onmouseup、onclick同时应用于同一个标签节点Element
2010/01/05 Javascript
JS 对输入框进行限制(常用的都有)
2013/07/30 Javascript
js 动态加载事件的几种方法总结
2013/12/25 Javascript
js使用正则实现ReplaceAll全部替换的方法
2014/08/22 Javascript
form.submit()不能提交表单的错误原因及解决方法
2014/10/13 Javascript
微信浏览器内置JavaScript对象WeixinJSBridge使用实例
2015/05/25 Javascript
JS实战篇之收缩菜单表单布局
2016/12/10 Javascript
详解jQuery中关于Ajax的几个常用的函数
2017/07/17 jQuery
webpack搭建vue 项目的步骤
2017/12/27 Javascript
JavaScript实现多重继承的方法分析
2018/01/09 Javascript
js代码规范之Eslint安装与配置详解
2018/09/08 Javascript
JS常用正则表达式超全集(密码强度校验,金额校验,IE版本,IPv4,IPv6校验)
2020/02/03 Javascript
js点击事件的执行过程实例分析【冒泡与捕获】
2020/04/11 Javascript
Vue实现背景更换颜色操作
2020/07/17 Javascript
[40:13]Ti4 冒泡赛第二天 iG vs NEWBEE 2
2014/07/15 DOTA
[02:17]《辉夜杯》TRG战队巡礼
2015/10/26 DOTA
python获取从命令行输入数字的方法
2015/04/29 Python
RC4文件加密的python实现方法
2015/06/30 Python
python利用拉链法实现字典方法示例
2017/03/25 Python
python argparser的具体使用
2019/11/10 Python
利用pipenv和pyenv管理多个相互独立的Python虚拟开发环境
2020/11/01 Python
python 实现数据库中数据添加、查询与更新的示例代码
2020/12/07 Python
html5中canvas学习笔记1-画板的尺寸与实际显示尺寸
2013/01/06 HTML / CSS
物流专业大学生的自我鉴定
2013/11/13 职场文书
小班下学期评语
2014/05/04 职场文书
课外访万家心得体会
2014/09/03 职场文书
2015年置业顾问工作总结
2015/04/07 职场文书
格林童话读书笔记
2015/06/30 职场文书
2016天猫双十一广告语
2016/01/28 职场文书
详解JS WebSocket断开原因和心跳机制
2021/05/07 Javascript
pytorch 实现变分自动编码器的操作
2021/05/24 Python
MYSQL 无法识别中文的永久解决方法
2021/06/03 MySQL