编写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 相关文章推荐
IIS下配置Php+Mysql+zend的图文教程
Dec 08 PHP
如何在smarty中增加类似foreach的功能自动加载数据
Jun 26 PHP
php实现可以设置中奖概率的抽奖程序代码分享
Jan 19 PHP
PHP实现的博客欢迎提示功能(很特别哦)
Jun 05 PHP
thinkphp数据查询和遍历数组实例
Nov 28 PHP
php遍历树的常用方法汇总
Jun 18 PHP
yii数据库的查询方法
Dec 28 PHP
PHP函数nl2br()与自定义函数nl2p()换行用法分析
Apr 02 PHP
php for 循环使用的简单实例
Jun 02 PHP
Laravel中任务调度console使用方法小结
May 07 PHP
PHP html_entity_decode()函数讲解
Feb 25 PHP
PHP Redis扩展无法加载的问题解决方法
Aug 22 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
2021年最新CPU天梯图
2021/03/04 数码科技
AJAX PHP无刷新form表单提交的简单实现(推荐)
2016/09/09 PHP
PHP针对中英文混合字符串长度判断及截取方法示例
2017/03/31 PHP
解决在laravel中leftjoin带条件查询没有返回右表为NULL的问题
2019/10/15 PHP
一段多浏览器的&quot;复制到剪贴板&quot;javascript代码
2007/03/27 Javascript
jquery实现居中弹出层代码
2010/08/25 Javascript
idTabs基于JQuery的根据URL参数选择Tab插件
2012/04/11 Javascript
解析prototype,JQuery中跳出each循环的方法
2013/12/12 Javascript
js星星评分效果
2014/07/24 Javascript
Bootstrap每天必学之按钮
2015/11/26 Javascript
javascript日期比较方法实例分析
2016/06/17 Javascript
jQuery实现 上升、下降、删除、添加一行代码
2017/03/06 Javascript
VUE 更好的 ajax 上传处理 axios.js实现代码
2017/05/10 Javascript
vue.js实现刷新当前页面的方法教程
2017/07/05 Javascript
深入浅析Vue不同场景下组件间的数据交流
2017/08/15 Javascript
微信小程序switch组件使用详解
2018/01/31 Javascript
5分钟快速掌握JS中var、let和const的异同
2018/09/19 Javascript
浅谈vux之x-input使用以及源码解读
2018/11/04 Javascript
基于JavaScript实现十五拼图代码实例
2020/04/26 Javascript
JS可断点续传文件上传实现代码解析
2020/07/30 Javascript
[54:06]OG vs TNC 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
Python实现简单的可逆加密程序实例
2015/03/05 Python
python 中的divmod数字处理函数浅析
2017/10/17 Python
Python实现Dijkstra算法
2018/10/17 Python
python常用排序算法的实现代码
2019/11/08 Python
scrapy与selenium结合爬取数据(爬取动态网站)的示例代码
2020/09/28 Python
基于OpenCV的路面质量检测的实现
2020/11/04 Python
编写html5时调试发现脚本php等网页js、css等失效
2013/12/31 HTML / CSS
HTML5页面嵌入小程序没有返回按钮及返回页面空白的问题
2020/05/28 HTML / CSS
卡塔尔航空官方网站:Qatar Airways
2017/02/08 全球购物
社区党的群众路线教育实践活动总结材料
2014/10/31 职场文书
2014年安置帮教工作总结
2014/12/11 职场文书
2015年端午节活动方案
2015/05/05 职场文书
2016年党员公开承诺书范文
2016/03/24 职场文书
2019年第四季度财务部门工作计划
2019/11/02 职场文书
教你怎么用python selenium实现自动化测试
2021/05/27 Python