php采集URL远程图片最高效的方法(Curl版本)

php采集远程图片有很多的方法,但是比较高效的个人感觉还是curl环境。

直接分享curl采集远程图片的代码:


                function getImg($url = "", $path='tempimg/'){
		     if(!file_exists($path)){//不存在则建立 
				$mk=@mkdir($path,0777); //权限 
				@chmod($path,0777); 
			} 
			if($url=="") return false;
			$filename = time()."_".rand(100,999).".jpg";
			$file = $path.$filename;
		  $hander = curl_init();
		  $fp = fopen($file,'wb');
		  curl_setopt($hander,CURLOPT_URL,$url);
		  curl_setopt($hander,CURLOPT_FILE,$fp);
		  curl_setopt($hander,CURLOPT_HEADER,0);
		  curl_setopt($hander,CURLOPT_FOLLOWLOCATION,1);
		  //curl_setopt($hander,CURLOPT_RETURNTRANSFER,false);//以数据流的方式返回数据,当为false是直接显示出来
		  curl_setopt($hander,CURLOPT_TIMEOUT,20);
		  curl_exec($hander);
		  curl_close($hander);
		  fclose($fp);
		  Return true;
		}


顺便分享下同事给我,但是感觉有时候效率不是很高,供给大家测试。如果服务器没有curl的时候可以采用这个试试


//采集图片。
function getImg($url,$path='tempimg/') {
    if(!file_exists($path)){//不存在则建立 
        $mk=@mkdir($path,0777); //权限 
        @chmod($path,0777); 
    } 
	if($url=="") return false;
	$ext=".jpg";
	$filename=time().rand(100000,999999).$ext;
	ob_start();
	readfile($url);
	$img = ob_get_contents();
	ob_end_clean();
	$fp2=@fopen($path.$filename,'a');
	fwrite($fp2,$img);
	fclose($fp2);
	return $path.$filename;
}


关键词: curl采集远程图片 , curl

上一篇: Discuzx 2.0/2.5/3.0论坛直接发帖接口,Discuzx 接口POST发帖更省事啦
下一篇: centos 6.4安装webmin 方法

目前还没有人评论,您发表点看法?
发表评论

评论内容 (必填):