dd

简单的图片采集类

jerry thinkphp 2015年11月18日 收藏
基本的图片保存类,对于gif图片,可进行静态化处理
<?php 
/**
 * Author 米国村长
 * @param $url 抓取图片的地址
 * @param $filepath 图片保存路径
 * @param $pre 图片保存名称前缀,可设置为循环递增或者随机数,减小重名几率*/

    class getImage{
        public function getImage($url,$filepath,$pre) {
            if ($url == "") {
                return false;
            }
            $arr = explode('.',$url);
            $ext = end($arr);
            $uniq = uniqid();        //设置一个唯一id

            /*对gif图片进行静态化,可用作缩略图*/
            if($ext == "gif"){        //判断是否为gif。若是,则进行静态化处理
                $gif_flag = 1;        //设置图片为gif的标记为1
                $new_ext = 'jpg';    
                if(!is_file($filepath)) mkdir($filepath,0777);//建立文件夹
                $name = $filepath.'/'.$pre.$uniq;    //文件的保存路径名称(无后缀)
                $name_jpg = $name.'.'.$new_ext;    //jpg的保存路径名称
                $name_gif = $name.'.gif';    //gif的保存路径名称

                $img = file_get_contents($url);            //抓取内容
                $this->mkFile($name_jpg,$img);            //创建jpg文件
                $this->mkFile($name_gif,$img);            //创建gif文件
                return array($name_gif,$name_jpg,$gif_flag));    //返回图片路径+名称+标记

            }else{            //不是gif图片则直接保存本地

                $gif_flag = 0;        //设置gif标记为0
                if(!is_file($filepath)) mkdir($filepath,0777);
                $name = $filepath.'/'.$pre.$uniq.$ext;    //图像保存的名称和路径
                $img = file_get_contents($url);        //抓取内容
                $this->mkFile($name,$img);
                return array($name,'',$gif_flag);    //返回图片路径+名称
            }
        }
        
        private function mkFile($name,$content){
            if(!is_file($name)) mkdir($name,0777);    //创建文件
            file_put_contents($name,$content)        //填充文件
        }
    }
?>
dd