>백엔드 개발 >PHP 튜토리얼 >PHP 远程图片本地化

PHP 远程图片本地化

WBOY
WBOY원래의
2016-06-20 12:45:441221검색

<?php/**		远程图片本地化	**/		function pget($url,$ref=false,$head=false){						$curl = curl_init(); // 启动一个CURL会话			curl_setopt($curl, CURLOPT_URL, $url); // 要访问的地址            			curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0); // 对认证证书来源的检查			curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 1); // 从证书中检查SSL加密算法是否存在			curl_setopt($curl, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']); // 模拟用户使用的浏览器			curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1); // 使用自动跳转			if($ref){ curl_setopt($curl, CURLOPT_REFERER, $ref);//带来的Referer			}else{			curl_setopt($curl, CURLOPT_AUTOREFERER, 1); // 自动设置Referer			}			curl_setopt($curl, CURLOPT_HTTPGET, 1); // 发送一个常规的Post请求			curl_setopt($curl, CURLOPT_TIMEOUT, 30); // 设置超时限制防止死循环			curl_setopt($curl, CURLOPT_HEADER, 0); // 显示返回的Header区域内容			curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); // 获取的信息以文件流的形式返回			$tmpInfo = curl_exec($curl); // 执行操作						if (curl_errno($curl)) {									echo 'Errno'.curl_error($curl);			}						if($head){ $data['head']=curl_getinfo($curl);}			curl_close($curl); // 关键CURL会话			$data['data']=$tmpInfo;			return $data; // 返回数据	}	 	 //远程图片本地化 function imgLocation($content){		 		 preg_match_all("/src=[\"|'|\s]{0,}(http:\/\/([^>]*)\.(gif|jpg|png)(.*\"))/isU",$content,$img_array);		 		 $timeSrc=date("Ymd", time());		 $img_array = array_unique($img_array[1]);		 		 $imgPath = dirname(__FILE__).'/../um/php/upload/'.$timeSrc;			if(!is_dir($imgPath.'/'))		{			 mkdir($imgPath, '0777',true);			 chmod($imgPath, '0777');		}			 foreach($img_array as $key=>$value){			 			   $value=str_repeat('"',"",$value);			   $http=pget($value,'$value',true);			   			   $itype=($http['head']['content_type']);				if(!preg_match("#\.(jpg|gif|png)#i", $itype))				{					if($itype=='image/gif')					{						$itype = ".gif";											}					else if($itype=='image/png')					{						$itype = ".png";					}					else					{						$itype = '.jpg';					}				}																$runds=md5(time());				$rndFileName=$imgPath."/".$runds.$itype;			 	$tp = fopen($rndFileName, 'wb');				fwrite($tp, $http['data']);				fclose($tp);						  if(file_exists($rndFileName))					{												$sqlurl="/home/um/php/upload/".$timeSrc."/".$runds.$itype;						$content = str_replace($value, $sqlurl.'"', $content);						$content = str_replace("alt=", "", $content);								  					}		 }				return $content;			 }	 	 	 ?>


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.