PHP识别用户上传的色情图片并防止实例

我在phpclasses.org上面偶然发现一个很有用的,由Bakr Alsharif开发的可以帮助开发者基于皮肤像素点来检测图片裸照的类文件.

它会分析在一张图片的不同部分使用的颜色,并决定其是否匹配人类皮肤颜色的色调.
作为分析的结果,他会返回一个反映图片包含裸露的可能性的分值.
此外,他还可以输出被分析的图片,上面对使用给定颜色的肤色的像素进行了标记.

当前它可以对PNG,GIF和JPEG图片进行分析.

PHP

下面展示了如何使用这个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不能够检测所有的裸体图片,所以不完全可信.我希望你觉得这还有点用处.

时间: 2024-08-02 19:11:25

PHP识别用户上传的色情图片并防止实例的相关文章

美国男子因向SkyDrive上传儿童色情图片被逮捕

&http://www.aliyun.com/zixun/aggregation/37954.html">nbsp;   在过去几年间,不时发生微软封停用户的SkyDrive账号的事情.尽管SkyDrive为用户提供了免费的存储空间, 但是并非所有内容都能储存在 那里,SkyDrive并不是你的硬盘,就算是私人文件夹,就算是合法使用,你也处在被监控中.如果上传了裸照或是色情等违禁内容,如果又恰巧被微软逮到,那你很可能会被封号.     更严重的问题是,如果你上传的内容包含儿童色情,

PHP自动识别用户上传不雅图片并发邮箱提示

下载:http://www.rrpowered.com/code/RRPowered-NudityFilter.zip 我在phpclasses.org上面偶然发现一个很有用的,由Bakr Alsharif开发的可以帮助开发者基于皮肤像素点来检测图片的类文件. 它会分析在一张图片的不同部分使用的颜色,并决定其是否匹配人类皮肤颜色的色调. 作为分析的结果,他会返回一个反映图片包含xx露的可能性的分值. 此外,他还可以输出被分析的图片,上面对使用给定颜色的肤色的像素进行了标记. 当前它可以对PNG,

防止用户上传产生无效文件源码

上传|上传 经过近日来的调试,狂人于4月12日写的一篇日志"用户上传产生无效文件的解决思路"代码部分已经完成.欢迎批评指正,以便改进. [FileName]:upload.asp[Code]:<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%><!--#i nclude virtual="upload.inc"--><% If Request.ServerVariable

Windows Phone 8开始支持上传高清图片及视频至SkyDrive的功能

微软近日在官博上宣布,Windows Phone 8用户也能享受到上传高清图片及视频至SkyDrive的功能.微软介绍道,用户在使用这个功能时需要进入照片-更多-设置-SkyDrive,然后点击"最高质量"即可实现上传高清图片或视频到SkyDrive的功能. 这里提醒一点,在使用这个功能的时候,用户必须要保证是在WiFi网络的环境下进行,不然可得承受昂贵的流量费用了.

IE+JS: 上传之前检测图片文件大小October

 来源: http://www.ugia.cn/?p=73 不得不佩服此人的巧妙的思想,简单几句话搞定了! 文件上传之前的检测,通常是通过文件名来判断文件类型是否合法,但是要想检测文件的大小很难办到,除非在本地或者使用控件.不过在IE下img有几个附加的属性,如:fileCreatedDate.fileModifiedDate.fileSize.fileUpdatedDate.filters,我们可以通过这些属性来获取图片文件的部分信息,如文件大小,我们用file表单同img标签结合,就能够在上

微信js-sdk上传与下载图片接口用法示例_javascript技巧

本文实例讲述了微信js-sdk上传与下载图片接口用法.分享给大家供大家参考,具体如下: 前提已经在wx.config()中,将图片接口验证通过. 微信js-sdk 中上传图片接口(uploadImage)和下载图片接口(downloadImage)都是针对微信服务器本身的.以官方文档为准 注: 1.使用chooseImage接口获取到微信客户端图片地址的与都是 weixin://xxxx 2.上传图片有效期3天,可用微信多媒体接口下载图片到自己的服务器,此处获得的 serverId 即 medi

PHP 如何阻止用户上传成人照片或者裸照

原文:PHP 如何阻止用户上传成人照片或者裸照 在这份教程中,我们将会学习到如何阻止用户通过PHP上传成人照片或者裸照. 示例   下载 我在phpclasses.org上面偶然发现一个很有用的,由Bakr Alsharif开发的可以帮助开发者基于皮肤像素点来检测图片裸照的类文件. 它会分析在一张图片的不同部分使用的颜色,并决定其是否匹配人类皮肤颜色的色调. 作为分析的结果,他会返回一个反映图片包含裸露的可能性的分值. 此外,他还可以输出被分析的图片,上面对使用给定颜色的肤色的像素进行了标记.

Instagram卖照片风波:用户上传文件到底归谁

中介交易 SEO诊断 淘宝客 云主机 技术大厅 导语:Instagram修改用户政策一石激起千层浪,引发人们就UGC(用户生成内容)网站的内容归属和使用权展开热烈讨论.自由撰稿人贾比尔·穆罕默德(Jaber Mohamed)通过分析YouTube和Facebook等主流网站的服务协议认为,网络服务商需要让它们的服务协议更具可读性.同时,避免UGC版权困扰需要网站和用户双方的努力. 以下是文章全文: Instagram本周一宣布修改隐私政策,之后它将拥有出售用户照片的永久性权利,而且无需支付费用或

自动预览上传图(图片预览)]

上传 自动预览上传图(图片预览)powered BY AIRZEN 2004/05/21 作者信息:Author:airzen QQ:39192170E-mail:airzen@sohu.com 转贴请保留作者信息,谢谢 <input name="w_s" type="file" id="w_s" onChange="load_img(this.value,img_s);"><input name="