/*
* 远程图片下载
*/
public function downpic($content){
$content= preg_replace('/alt=[\'|\"](.*?)[\'|\"]/','',$content);
$content = str_replace(' ','',$content);
//获取图片
preg_match_all('/<[img|IMG].*?src=[\'|\"](.*?)[\'|\"]/',$content, $matches);
$ok = $chongwu = 0;
if(isset($matches[1])&&count($matches[1])>0){
$xiugaiqian = $matches[1];
$xiugaihou = array();
foreach($xiugaiqian as $ik=>$iv){
$houv = getTrueImage($iv);
$xiugaihou[$ik] = $houv;
if($iv==$houv){
$chongwu++;
}else{
$ok++;
}
}
$content = str_replace($xiugaiqian,$xiugaihou,$content);
}
$data['ok'] = $ok;
$data['chongwu'] = $chongwu;
$data['content'] = $content;
return json_encode($data);
}
//下载图片文件名不变
function getTrueImage($url,$save_dir='uploadimg/image/'){
$url_path = parse_url($url);
//获取图片信息
$img_info = pathinfo($url_path['path']);
$save_dir = $img_info['dirname'].'/';//图片保存路径
$save_dir = substr($save_dir,strpos($save_dir,"/")+1);
if(!file_exists($save_dir)&&!mkdir($save_dir,0777,true)){
return $url;
}
//文件名
if($img_info['basename']){
$filename = $img_info['basename'];
}else{
$filename = time().rand(100,999).'.'.$img_info['extension'];
}
if(!file_exists($save_dir.$filename)){
//获取远程文件所采用的方法
$ch=curl_init();
$timeout=5;
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt ($ch, CURLOPT_REFERER, $url_path['scheme'].$url_path['host']);//这里为空也行,为他的主域名也可
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,$timeout);
$img=curl_exec($ch);
curl_close($ch);
//$size=strlen($img);
//文件大小
if(($fp2=@fopen(trim($save_dir.$filename),'a')) !== false){
fwrite($fp2, $img);
fclose($fp2);
}
unset($img,$url);
}
return '/'.$save_dir.$filename;
}
php远程下载文章中图片并保存源文件名不变
最新推荐文章于 2021-03-10 09:52:26 发布