编写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脚本的10个技巧(5)
Oct 09 PHP
开启CURL扩展,让服务器支持PHP curl函数(远程采集)
Mar 19 PHP
php数字游戏 计算24算法
Jun 10 PHP
如何用PHP实现插入排序?
Apr 10 PHP
利用php+mcDropdown实现文件路径可在下拉框选择
Aug 07 PHP
php中的boolean(布尔)类型详解
Oct 28 PHP
php数据库备份还原类分享
Mar 20 PHP
Linux下PHP连接Oracle数据库
Aug 20 PHP
php实现通用的从数据库表读取数据到数组的函数实例
Mar 21 PHP
PHP 二维数组和三维数组的过滤
Mar 16 PHP
PHP XML Expat解析器知识点总结
Feb 15 PHP
Laravel框架基础语法与知识点整理【模板变量、输出、include引入子视图等】
Dec 03 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
CI(CodeIgniter)框架配置
2014/06/10 PHP
php实现的九九乘法口诀表简洁版
2014/07/28 PHP
解读PHP中的垃圾回收机制
2015/08/10 PHP
PHP读取Excel内的图片(phpspreadsheet和PHPExcel扩展库)
2019/11/19 PHP
JavaScript常用对象的方法和属性小结
2012/01/24 Javascript
js制作的鼠标悬浮时产生的下拉框效果
2012/10/27 Javascript
javascript date格式化示例
2013/09/25 Javascript
判断滚动条到底部的JS代码
2013/11/04 Javascript
使用jquery 简单实现下拉菜单
2015/01/14 Javascript
javascript操作select元素实例分析
2015/03/27 Javascript
浅析JS运动
2015/12/28 Javascript
JS中Eval解析JSON字符串的一个小问题
2016/02/21 Javascript
jQuery.ajax 跨域请求webapi设置headers的解决方案
2016/08/08 Javascript
基于js中的原型、继承的一些想法
2016/08/10 Javascript
Node.js npm命令运行node.js脚本的方法
2018/10/10 Javascript
解决layer 动态加载select 失效的问题
2019/09/18 Javascript
Vue使用NProgress进度条的方法
2019/09/21 Javascript
原生JS实现京东查看商品点击放大
2020/12/21 Javascript
在Apache服务器上同时运行多个Django程序的方法
2015/07/22 Python
详解Python中的array数组模块相关使用
2016/07/05 Python
对Python 网络设备巡检脚本的实例讲解
2018/04/22 Python
Python调用C++,通过Pybind11制作Python接口
2018/10/16 Python
将python依赖包打包成window下可执行文件bat方式
2019/12/26 Python
Python Opencv实现单目标检测的示例代码
2020/09/08 Python
python 如何上传包到pypi
2020/12/24 Python
Christys’ Hats官网:英国帽子制造商
2018/11/28 全球购物
信息部岗位职责
2013/11/12 职场文书
房地产项目建议书
2014/03/12 职场文书
服务之星事迹材料
2014/05/03 职场文书
新闻学专业职业生涯规划范文:我的人生我做主
2014/09/12 职场文书
无犯罪记录证明
2014/09/19 职场文书
县长“四风”对照检查材料思想汇报
2014/10/05 职场文书
政风行风建设整改方案
2014/10/27 职场文书
2014年优秀党员材料
2014/12/18 职场文书
2015财务年终工作总结范文
2015/05/22 职场文书
关于SpringBoot 使用 Redis 分布式锁解决并发问题
2021/11/17 Redis