编写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函数之error_reporting(E_ALL ^ E_NOTICE)详细说明
Jul 01 PHP
php中批量删除Mysql中相同前缀的数据表的代码
Jul 01 PHP
php快递单号查询接口使用示例
May 05 PHP
PHP异常Parse error: syntax error, unexpected T_VAR错误解决方法
May 06 PHP
PHP实现单例模式最安全的做法
Jun 13 PHP
PHP 读取和编写 XML
Nov 19 PHP
php简单实现批量上传图片的方法
May 09 PHP
PHP数据库表操作的封装类及用法实例详解
Jul 12 PHP
php的laravel框架快速集成微信登录的方法
Dec 12 PHP
Laravel中前端js上传图片到七牛云的示例代码
Sep 04 PHP
Laravel中使用Queue的最基本操作教程
Dec 27 PHP
浅谈laravel框架与thinkPHP框架的区别
Oct 23 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
discuz Passport 通行证 整合笔记
2008/06/30 PHP
解析php中static,const与define的使用区别
2013/06/18 PHP
smarty内部日期函数html_select_date()用法实例分析
2015/07/08 PHP
ThinkPHP使用Ueditor的方法详解
2016/05/20 PHP
php实现的redis缓存类定义与使用方法示例
2017/08/09 PHP
PHP常见字符串操作函数与用法总结
2019/03/04 PHP
取得父标签
2006/11/14 Javascript
javascript 命名空间以提高代码重用性
2008/11/13 Javascript
JavaScript Accessor实现说明
2010/12/06 Javascript
为JavaScript类型增加方法的实现代码(增加功能)
2011/12/29 Javascript
js中根据字数截取字符串,不能截断url
2012/01/12 Javascript
jquery 插件开发 extjs中的extend用法小结
2013/01/04 Javascript
Web跨浏览器进程通信(Web跨域)
2013/04/17 Javascript
jQuery之排序组件的深入解析
2013/06/19 Javascript
在Node.js应用中使用Redis的方法简介
2015/06/24 Javascript
js实现简洁的滑动门菜单(选项卡)效果代码
2015/09/04 Javascript
easyui取消表单实时验证,提交时统一验证的简单实例
2016/11/07 Javascript
浅谈javascript的url参数parse和build函数
2017/03/04 Javascript
Vue.js添加组件操作示例
2018/06/13 Javascript
JS实现头条新闻的经典轮播图效果示例
2019/01/30 Javascript
Node.js 深度调试方法解析
2020/07/28 Javascript
Python实现批量下载文件
2015/05/17 Python
Python随手笔记之标准类型内建函数
2015/12/02 Python
详解Django 时间与时区设置问题
2019/07/23 Python
Python通过字典映射函数实现switch
2020/11/06 Python
利于python脚本编写可视化nmap和masscan的方法
2020/12/29 Python
波兰家具和室内装饰品购物网站:Vivre
2018/04/10 全球购物
Does C# support multiple inheritance? (C#支持多重继承吗)
2012/01/04 面试题
优秀班集体获奖感言
2014/02/03 职场文书
党的群众路线教育实践活动教师自我剖析材料
2014/10/09 职场文书
2014年教研室工作总结
2014/12/06 职场文书
数学复习课教学反思
2016/02/18 职场文书
市语委办2016年第十九届“推普周”活动总结
2016/04/05 职场文书
TypeScript中条件类型精读与实践记录
2021/10/05 Javascript
上个世纪50年代的可穿戴技术:无线电帽子
2022/02/18 无线电
Nginx如何配置多个服务域名解析共用80端口详解
2022/09/23 Servers