编写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小技巧搜集,每个PHPer都来露一手
Jan 02 PHP
PHP对字符串的递增运算分析
Aug 08 PHP
php入门学习知识点一 PHP与MYSql连接与查询
Jul 14 PHP
PHP多个文件上传到服务器实例
Oct 29 PHP
php单一接口的实现方法
Jun 20 PHP
详解WordPress开发中get_header()获取头部函数的用法
Jan 08 PHP
PHP的几个常用加密函数
Feb 03 PHP
Thinkphp单字母函数使用指南
May 08 PHP
Laravel框架实现的记录SQL日志功能示例
Jun 19 PHP
PHP输出Excel PHPExcel的方法
Jul 26 PHP
Laravel 手动开关 Eloquent 修改器的操作方法
Dec 30 PHP
PHP基于openssl实现非对称加密代码实例
Jun 19 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后门URL的防范
2013/11/12 PHP
ThinkPHP做文字水印时提示call an undefined function exif_imagetype()解决方法
2014/10/30 PHP
简单解决新浪SAE无法上传文件的问题
2015/05/13 PHP
jQuery操作元素css样式的三种方法
2014/06/04 Javascript
深入理解javascript中的立即执行函数(function(){…})()
2014/06/12 Javascript
JS、CSS以及img对DOMContentLoaded事件的影响
2014/08/12 Javascript
jquery事件preventDefault()方法用法实例
2015/01/16 Javascript
基于css3新属性transform及原生js实现鼠标拖动3d立方体旋转
2016/06/12 Javascript
漫谈JS引擎的运行机制 你应该知道什么
2016/06/15 Javascript
JS使用cookie设置样式的方法
2016/06/30 Javascript
javaScript实现复选框全选反选事件详解
2020/11/20 Javascript
Vue中this.$router.push参数获取方法
2018/02/27 Javascript
vue+iview 兼容IE11浏览器的实现方法
2019/01/07 Javascript
详解如何实现Element树形控件Tree在懒加载模式下的动态更新
2019/04/25 Javascript
vuex存储token示例
2019/11/11 Javascript
原生js实现日历效果
2020/03/02 Javascript
python list中append()与extend()用法分享
2013/03/24 Python
Django如何实现内容缓存示例详解
2017/09/24 Python
Python实现针对给定单链表删除指定节点的方法
2018/04/12 Python
详解python实现小波变换的一个简单例子
2019/07/18 Python
python闭包、深浅拷贝、垃圾回收、with语句知识点汇总
2020/03/11 Python
使用python实现飞机大战游戏
2020/03/23 Python
Python Django中间件使用原理及流程分析
2020/06/13 Python
Python爬虫爬取博客实现可视化过程解析
2020/06/29 Python
Python环境配置实现pip加速过程解析
2020/11/27 Python
聊聊python在linux下与windows下导入模块的区别说明
2021/03/03 Python
Auchan Direct波兰:欧尚在线杂货店
2016/10/19 全球购物
物理力学求职信
2014/02/18 职场文书
合作协议书
2014/04/23 职场文书
白莲教口号
2014/06/18 职场文书
大学生职业生涯十年规划书范文
2014/09/17 职场文书
廉政文化进校园广播稿
2014/10/20 职场文书
2015毕业实习推荐信
2015/03/23 职场文书
导游词之澳门妈祖庙
2019/12/19 职场文书
索尼ICF-5900W收音机测评
2022/04/24 无线电
CSS使用SVG实现动态分布的圆环发散路径动画
2022/12/24 HTML / CSS