PHP 如何阻止用户上传成人照片或者裸照
在这份教程中,我们将会学习到如何阻止用户通过PHP上传成人照片或者裸照.
我在phpclasses.org上面偶然发现一个很有用的,由Bakr Alsharif开发的可以帮助开发者基于皮肤像素点来检测图片裸照的类文件.
它会分析在一张图片的不同部分使用的颜色,并决定其是否匹配人类皮肤颜色的色调.
作为分析的结果,他会返回一个反映图片包含裸露的可能性的分值.
此外,他还可以输出被分析的图片,上面对使用给定颜色的肤色的像素进行了标记.
当前它可以对PNG,GIF和JPEG图片进行分析.
PHP
下面展示了如何使用这个PHP类.
让我们先从包含裸体过滤器,nf.php文件开始.
| 1 | include ('nf.php'); | 
接下来,创建一个新的名叫ImageFilter的类,然后把它放到一个叫做$filter的变量中.
| 1 | $filter= newImageFilter; | 
获取图片的分值并将其放到一个$score变量中.
| 1 | $score= $filter-> GetScore($_FILES['img']['tmp_name']); | 
如果图片分值大于或等于60%,那就展示一条(告警)消息.
| 1 2 3 | if($score>= 60){/*Message*/} | 
下面是所有的PHP代码:
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | <?php/*Include the Nudity Filter file*/include('nf.php');/*Create a new class called $filter*/$filter= newImageFilter;/*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*/    } elseif($score< 0) {        echo"Congratulations, you have uploaded an non-nude image.";    }}?> | 
标记语言
我们可以使用一个基础的HTML表单上传图片.
| 1 2 3 4 5 | <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不能够检测所有的裸体图片,所以不完全可信.我希望你觉得这还有点用处.
原文地址:http://www.rrpowered.com/2014/04/prevent-uploads-of-adult-or-nude-pictures-using-php/
PHP 如何阻止用户上传成人照片或者裸照的更多相关文章
- 转:PHP如何阻止用户上传成人照片或者裸照
		原文来自于:http://www.hackbase.com/tech/2014-10-12/69367.html 当前,网络淫秽色情信息屡禁不止.屡打不绝,严重危害未成年人身心健康,严重败坏社会风气, ... 
- 利用exif.js解决ios手机上传竖拍照片旋转90度问题
		html5+canvas进行移动端手机照片上传时,发现ios手机上传竖拍照片会逆时针旋转90度,横拍照片无此问题:Android手机没这个问题. 因此解决这个问题的思路是:获取到照片拍摄的方向角,对非 ... 
- 利用exif.js解决手机上传竖拍照片旋转90\180\270度问题
		原文:https://blog.csdn.net/linlzk/article/details/48652635/ html5+canvas进行移动端手机照片上传时,发现ios手机上传竖拍照片会逆时针 ... 
- 利用exif.js解决ios或Android手机上传竖拍照片旋转90度问题
		html5+canvas进行移动端手机照片上传时,发现ios手机上传竖拍照片会逆时针旋转90度,横拍照片无此问题:Android手机没这个问题. 因此解决这个问题的思路是:获取到照片拍摄的方向角,对非 ... 
- js-input file 文件上传(照片,视频,音频)
		在此做一个笔记 <input type="file" accept="image/*" capture="camera"> &l ... 
- 解决IIS7.0服务和用户上传的文件分别部署在不同的电脑上时,解决权限的问题
		为解决IIS服务和用户上传的文件分别部署在不同的电脑上时,解决权限的问题. 定义: A:iis服务器 B:文件服务器 步骤: 1.在B上创建一个用户[uploaduser](并设置密码) 2.给B上的 ... 
- 解决ios手机上传竖拍照片旋转90度问题
		html5+canvas进行移动端手机照片上传时,发现ios手机上传竖拍照片会逆时针旋转90度,横拍照片无此问题:Android手机没这个问题. 因此解决这个问题的思路是:获取到照片拍摄的方向角,对非 ... 
- Django项目实战之用户上传与访问
		1 将文件保存到服务器本地 upload.html <!DOCTYPE html> <html lang="en"> <head> <me ... 
- Django之用户上传文件的参数配置
		Django之用户上传文件的参数配置 models.py文件 class Xxoo(models.Model): title = models.CharField(max_length=128) # ... 
随机推荐
- DEDECMS中,channel标签
			获取栏目列表标签 dede:channel 标签: {dede:channel type='top' row='8' currentstyle="<li><a href=' ... 
- CSS3中的变形处理(transform)属性
			在CSS3中,可以利用transform功能来实现文字或图像的旋转.扭曲.缩放.位移.矩阵.原点这六种类型的变形处理,下面将详细讲解transform的使用. 变形--旋转 rotate() div. ... 
- Oracle SGA参数调整
			一. SGA的组成: 自动 SGA 管理后,Oracle 可以自动为我们调整以下内存池的大小: shared pool buffer cache large pool java pool stream ... 
- Linux学习1
			Linux中一切皆文件,且不依靠扩展名区分文件,学习Linux必须要熟悉在字符界面进行文件的管理. 首先是Linux的查询命令. (1)ls -a是显示当前目录所有文件,包含隐藏文件,如图中文件名前加 ... 
- 1020. Tree Traversals (序列建树)
			Suppose that all the keys in a binary tree are distinct positive integers. Given the postorder and i ... 
- UVA 725
			Description Write a program that finds and displays all pairs of 5-digit numbers that between them ... 
- Code for the Homework2 改进
			1. 实现了到指定点各个关节的转角计算(多解性),并且所求解满足各个关节的最大角和最小角的限制条件. 2. 对方向向量进行了单位化,保证任意大小的向量都行 #include<iostream&g ... 
- Apple移动设备处理器指令集 armv6、armv7、armv7s及arm64-b
			Arm处理器,因为其低功耗和小尺寸而闻名,几乎所有的手机处理器都基于arm,其在嵌入式系统中的应用非常广泛,它的性能在同等功耗产品中也很出色. Armv6.armv7.armv7s.arm64都是ar ... 
- python 记录日志logging
			在项目开发中,往往要记录日志文件.用python记录日志有两种方式: 1.利用python 自带的logging库,例如: # -*- coding: utf-8 -*- import osimpor ... 
- tar 解压缩命令
			tar -c: 建立压缩档案-x:解压-t:查看内容-r:向压缩归档文件末尾追加文件-u:更新原压缩包中的文件 这五个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只能用其中一个.下面的 ... 
