编写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蜘蛛统计插件只要有mysql就可用
Oct 12 PHP
PHP文件读写操作之文件写入代码
Jan 13 PHP
php设计模式 Visitor 访问者模式
Jun 28 PHP
PHP5.3的垃圾回收机制(动态存储分配方案)深入理解
Dec 10 PHP
基于php常用函数总结(数组,字符串,时间,文件操作)
Jun 27 PHP
PHP自动识别字符集并完成转码详解
Aug 02 PHP
PHP中imagick函数的中文解释
Jan 21 PHP
Yii使用migrate命令执行sql语句的方法
Mar 15 PHP
thinkphp制作404跳转页的简单实现方法
Sep 22 PHP
解决Yii2邮件发送结果返回成功,但接收不到邮件的问题
May 23 PHP
php 删除指定文件夹的实例讲解
Jul 25 PHP
ThinkPHP框架实现导出excel数据的方法示例【基于PHPExcel】
May 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
Windows下的PHP5.0详解
2006/11/18 PHP
完善CodeIgniter在IDE中代码提示功能的方法
2014/07/19 PHP
php实现当前页面点击下载文件的简单方法
2016/09/22 PHP
JavaScript 判断浏览器是否支持SVG的代码
2013/03/21 Javascript
基于jQuery实现在线选座之高铁版
2015/08/24 Javascript
js实现一个简单的数字时钟效果
2017/03/29 Javascript
详解AngularJS ng-class样式切换
2017/06/27 Javascript
解决IE7中使用jQuery动态操作name问题
2017/08/28 jQuery
Vuejs开发环境搭建及热更新【推荐】
2018/09/07 Javascript
ligerUI的ligerDialog关闭刷新的方法
2019/09/27 Javascript
element实现合并单元格通用方法
2019/11/13 Javascript
element-ui中按需引入的实现
2019/12/25 Javascript
js面向对象之实现淘宝放大镜
2020/01/15 Javascript
JS中FileReader类实现文件上传及时预览功能
2020/03/27 Javascript
vue实现的多页面项目如何优化打包的步骤详解
2020/07/19 Javascript
wxpython 最小化到托盘与欢迎图片的实现方法
2014/06/09 Python
跟老齐学Python之Import 模块
2014/10/13 Python
Python实现简单的代理服务器
2015/07/25 Python
python中Apriori算法实现讲解
2017/12/10 Python
Python函数的默认参数设计示例详解
2019/12/01 Python
Pytoch之torchvision.transforms图像变换实例
2019/12/30 Python
浅谈python之自动化运维(Paramiko)
2020/01/31 Python
肯尼亚网上商城:Kilimall
2016/08/20 全球购物
是什么让J2EE适合用来开发多层的分布式的应用
2015/01/16 面试题
什么是测试驱动开发(TDD)
2012/02/15 面试题
中文系师范生自荐信
2013/10/01 职场文书
保安员岗位职责
2013/11/17 职场文书
工业学校毕业生自荐信范文
2014/01/03 职场文书
自我介绍演讲稿
2014/01/15 职场文书
公司合作协议书范本
2014/04/18 职场文书
2014大学生职业生涯规划书最新范文
2014/09/13 职场文书
2014年社区党建工作总结
2014/11/11 职场文书
2014公司年终工作总结
2014/12/19 职场文书
Python机器学习之底层实现KNN
2021/06/20 Python
Redis实现分布式锁的五种方法详解
2022/06/14 Redis
Nginx安装配置详解
2022/06/25 Servers