php 生成内涵图

本人声明:本人系PHP初学者,有什么不理想的地方,请大家多多提意见~!谢谢~!

所谓内涵图将网页上的JPG图片下载后修改后缀名为RAR打开里面包含种子文件,主要用来传播某岛国的爱情动作片或者爱情功夫手册。

首先准备种子文件    .torrent 文件 和图片文件    .JPG 文件

然后将种子文件 .torrent 以rar格式打包  然后将压缩包和图片一起上传后输出的图片就是所谓的内涵图了。

<?php
/**
自动删除保存超过一分钟的文件
**/
$path= "uploadfiles/";//定时删的文件目录和保存上传文件的目标文件夹


if(!($dp = opendir($path))) die ("读取目录失败");//打开目录
$file_array = array();//新建数组
while ($file = readdir ($dp)){
    if(substr($file,0,1) != '.' and $file != "index.php"){//历遍文件夹,加入数组
        $file_array[] = $file;
    }
}
$file_count = count ($file_array);//文件个数
sort ($file_array);//文件数组排序
if ($file_count > 0){
    while (list($fileIndexValue, $file_name) = each ($file_array)){
        $file_name = $path.$file_name;
        $lenght    = strlen($file_name);
        $mtime     = filemtime($file_name);//获取文件创建时间
        $now       = time();
        if(($now-$mtime) > 1*60) {// 10*60就是10*60秒=10分钟后自动删除
            unlink($file_name);//删除文件
        }
    }
}
closedir($dp);//结束流
?>


<form enctype="multipart/form-data" action="<?php $_SERVER['PHP_SELF']?>" method="post">
  <input type="file" name="myfile[]" id="myfile2" /><br />
  <input type="file" name="myfile[]" id="myfile3" /><br />
  <input type="submit" name="submit" value="上传" />
</form>

<?php
if(!file_exists($path)){
    //检查是否有该文件夹,如果没有就创建,并给予最高权限
    mkdir("$path", 0700);
}//END IF
//允许上传的文件格式
//$tp = array("image/jpeg","application/octet-stream");
if(isset($_FILES['myfile'])){
    foreach ($_FILES["myfile"]["size"] as $k=>$v){//文件超出大小限制退出
        if($v>3145728){//如果大衣3mb则退出
            echo "文件大小超出限制,最大为3mb";
            exit;
        }
    }    
    $type_code = array();
    foreach ($_FILES["myfile"]["tmp_name"] as $kk=>$vv){
        $fp = fopen($vv, "rb");
        $bin = fread($fp,4); //只读2字节
        fclose($fp);
        $str_info  = unpack("C2chars", $bin);//从二进制字符串对数据进行解包,得到前两个字节信息
        $type_code[] = intval($str_info['chars1'].$str_info['chars2']);//通过使用特定的进制转换(默认是十进制)
    }
    rsort($type_code);
    if($type_code[0]==255216&&$type_code[1]==8297){
        $fileurl = array();
        foreach ($_FILES["myfile"]["tmp_name"] as $kk=>$vv){
            $file22    = explode('.',$_FILES["myfile"]["name"][$kk]);
            $file2     = $path.date("YmdHi").base64_encode($file22[0]).'.'.$file22[1];
            $fileurl[] = $file2;
            move_uploaded_file($vv,$file2);//从系统生成的临时文件移动到所设置的文件夹
        }
        global $pic,$rar;
        $newpath = $path.time().'_torrent.jpg';//设定文件路径和名称
        foreach($fileurl as $kh=>$vh){
            $arry = explode('.',$vh);
            if(strtolower($arry[1])=='jpg'){
                $jpgurl = $vh;
                $pic    = file_get_contents($jpgurl);//抓取所上传的图片数据
            }
            if(strtolower($arry[1])=='rar'){
                $rarurl = $vh;
                $rar    = file_get_contents($rarurl);//专区所上传的压缩文件数据
            }
        }
        $combine = $pic.$rar;//合并数据
        $new     = fopen($newpath,'w+');//打开所指定的文件,如果没有则创建之
        if(fwrite($new,$combine) == true) echo '<img src="http://www.ys2o.com/test/uploadfiles/'.time().'_torrent.jpg"/>';//写入数据然后输出图种图片
    }else{
        echo "格式不对必须是RAR压缩文件和JPG图片文件";
        exit;
    }
}
?>
测试地址:  http://www.ys2o.com/test/test11.php

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值