编写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 相关文章推荐
phpMyadmin 用户权限中英对照
Apr 02 PHP
PHP变量内存分配问题记录整理
Nov 27 PHP
php 根据url自动生成缩略图并处理高并发问题
Jan 23 PHP
php类中的各种拦截器用法分析
Nov 03 PHP
php写入数据到CSV文件的方法
Mar 14 PHP
php正则表达式验证(邮件地址、Url地址、电话号码、邮政编码)
Mar 14 PHP
PHP模板引擎Smarty内置变量调解器用法详解
Apr 11 PHP
PHP Callable强制指定回调类型的方法
Aug 30 PHP
PHP迭代与递归实现无限级分类
Aug 28 PHP
PHP基于imagick扩展实现合成图片的两种方法【附imagick扩展下载】
Nov 14 PHP
php封装db类连接sqlite3数据库的方法实例
Dec 19 PHP
实例分析10个PHP常见安全问题
Jul 09 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
WAF的正确bypass
2017/01/05 PHP
菜单效果
2006/10/14 Javascript
关于jQuery UI 使用心得及技巧
2012/10/10 Javascript
Javascript简单实现可拖动的div
2013/10/22 Javascript
基于zepto.js实现仿手机QQ空间的大图查看组件ImageView.js详解
2015/03/05 Javascript
JS实现模拟风力的雪花飘落效果
2015/05/13 Javascript
Angularjs中的事件广播 —全面解析$broadcast,$emit,$on
2016/05/17 Javascript
jquery简单插件制作(fn.extend)完整实例
2016/05/24 Javascript
AngularJS 依赖注入详解和简单实例
2016/07/28 Javascript
jQuery与JS加载事件用法分析
2016/09/04 Javascript
js实现简易垂直滚动条
2017/02/22 Javascript
深入理解ES6之数据解构的用法
2018/01/13 Javascript
Node.js Buffer用法解读
2018/05/18 Javascript
vue.js多页面开发环境搭建过程
2019/04/24 Javascript
JavaScript中的ES6 Proxy的具体使用
2019/06/16 Javascript
微信小程序 调用微信授权窗口相关问题解决
2019/07/25 Javascript
解决vue scoped scss 无效的问题
2020/09/04 Javascript
[02:02]2018DOTA2亚洲邀请赛Mineski赛前采访
2018/04/04 DOTA
[01:14]TI珍贵瞬间系列(六):冠军
2020/08/30 DOTA
浅析Python中MySQLdb的事务处理功能
2016/09/21 Python
Python 常用模块 re 使用方法详解
2019/06/06 Python
Django使用模板后无法找到静态资源文件问题解决
2019/07/19 Python
django 实现celery动态设置周期任务执行时间
2019/11/19 Python
Python3 使用map()批量的转换数据类型,如str转float的实现
2019/11/29 Python
使用Python实现牛顿法求极值
2020/02/10 Python
用CSS3实现无限循环的无缝滚动的实例代码
2017/07/04 HTML / CSS
美国领先的水果篮送货公司和新鲜水果供应商:The Fruit Company
2018/02/13 全球购物
DBA数据库管理员JAVA程序员架构师必看
2016/02/07 面试题
九年级化学教学反思
2014/01/28 职场文书
贷款担保书范文
2014/05/13 职场文书
规范化管理年活动总结
2014/08/29 职场文书
2014年人力资源工作总结
2014/11/19 职场文书
国家助学金感谢信
2015/01/21 职场文书
解决golang 关于全局变量的坑
2021/05/06 Golang
浅谈Python 中的复数问题
2021/05/19 Python
Python实现生活常识解答机器人
2021/06/28 Python