基本的图片保存类,对于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) //填充文件
}
}
?>