编写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 相关文章推荐
mysql_fetch_row,mysql_fetch_array,mysql_fetch_assoc的区别
Apr 24 PHP
php连接Access数据库错误及解决方法
Jun 20 PHP
PHP file_get_contents设置超时处理方法
Sep 30 PHP
PHP字符串的递增和递减示例介绍
Feb 11 PHP
php实现信用卡校验位算法THE LUHN MOD-10示例
May 07 PHP
CI框架开发新浪微博登录接口源码完整版
May 28 PHP
destoon复制新模块的方法
Jun 21 PHP
PHP实现加密的几种方式介绍
Feb 22 PHP
php准确计算复活节日期的方法
Apr 18 PHP
php json转换相关知识(小结)
Dec 21 PHP
Yii框架的路由配置方法分析
Sep 09 PHP
laravel-admin 实现在指定的相册下添加照片
Oct 21 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
thinkphp常见路径用法分析
2014/12/02 PHP
PHP实现cookie跨域session共享的方法分析
2019/08/23 PHP
mysqli扩展无法在PHP7下升级问题的解决
2019/09/10 PHP
php post换行的方法
2020/02/03 PHP
广告代码静态化js通用函数
2007/05/09 Javascript
根据对象的某一属性进行排序的js代码(如:name,age)
2010/08/10 Javascript
基于jquery实现后台左侧菜单点击上下滑动显示
2013/04/11 Javascript
javascript获取网页中指定节点的父节点、子节点的方法小结
2013/04/24 Javascript
javascript在子页面中函数无法调试问题解决方法
2014/01/17 Javascript
用JavaScript实现使用鼠标画线的示例代码
2014/08/19 Javascript
javascript动态生成树形菜单的方法
2015/11/14 Javascript
JS中innerHTML和pasteHTML的区别实例分析
2016/06/22 Javascript
js 原生判断内容区域是否滚动到底部的实例代码
2017/11/15 Javascript
vue axios 二次封装的示例代码
2017/12/08 Javascript
NodeJS父进程与子进程资源共享原理与实现方法
2018/03/16 NodeJs
微信小程序wx.navigateTo中events属性实现页面间通信传值,数据同步
2019/07/13 Javascript
OpenLayers3实现地图鹰眼以及地图比例尺的添加
2020/09/25 Javascript
python实现画一颗树和一片森林
2018/06/25 Python
PyQt5内嵌浏览器注入JavaScript脚本实现自动化操作的代码实例
2019/02/13 Python
python监控nginx端口和进程状态
2019/09/06 Python
python实现超市管理系统(后台管理)
2019/10/25 Python
Python迷宫生成和迷宫破解算法实例
2019/12/24 Python
Django框架配置mysql数据库实现过程
2020/04/22 Python
Flask缓存静态文件的具体方法
2020/08/02 Python
python 实现学生信息管理系统的示例
2020/11/28 Python
HTML5新表单元素_动力节点Java学院整理
2017/07/12 HTML / CSS
趣味游戏活动方案
2014/02/07 职场文书
企业宗旨标语
2014/06/10 职场文书
美术第二课堂活动总结
2014/07/08 职场文书
2014年大学教师工作总结
2014/12/02 职场文书
2015年世界无车日活动总结
2015/03/23 职场文书
高中政治教师教学反思
2016/02/23 职场文书
Spring Data JPA使用JPQL与原生SQL进行查询的操作
2021/06/15 Java/Android
攻击最高的10只幽灵系神奇宝贝,坚盾剑怪排第一,第五最为可怕
2022/03/18 日漫
Win11怎么修改电源模式?Win11修改电源模式的方法
2022/04/05 数码科技
python中pd.cut()与pd.qcut()的对比及示例
2022/06/16 Python