加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

获取微信XML格式中传来的图片并保存到本地

发布时间:2020-12-16 05:54:40 所属栏目:百科 来源:网络整理
导读:微信开启防外链后,一种方法是绕开外链,另一种方法自然是将图片保存到本地,在取的时候从本地去获取图片,那么如何从微信返回的XML格式中获取到图片的地址并且下载保存呢,代码如下: protected function work(){$xml = simplexml_load_string($image_message

微信开启防外链后,一种方法是绕开外链,另一种方法自然是将图片保存到本地,在取的时候从本地去获取图片,那么如何从微信返回的XML格式中获取到图片的地址并且下载保存呢,代码如下:

protected function work(){
		$xml = simplexml_load_string($image_message['content'],'SimpleXMLElement',LIBXML_NOCDATA);
		$content = json_decode(json_encode((array)$xml),TRUE);//微信的XML转成数组格式这个没什么好说的
		$wechat_img_url = $content['PicUrl'];//获取图片地址
		$ch = curl_init();
		curl_setopt($ch,CURLOPT_URL,$wechat_img_url);
		curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
		curl_setopt($ch,CURLOPT_HEADER,false);
		curl_setopt($ch,CURLOPT_FOLLOWLOCATION,1);
		curl_setopt($ch,CURLOPT_MAXREDIRS,2);
		$response= curl_exec($ch);
		if(curl_getinfo($ch,CURLINFO_HTTP_CODE) == '200'){
			$img_type = @getimagesize($wechat_img_url);//getimagesize可以获取图片的格式
			if($img_type["mime"] == "image/jpeg"){
				$_filename = $image_message['id'].'.jpg';
			}elseif($img_type["mime"] == "image/png"){
				$_filename = $image_message['id'].'.png';
			}else{
					break;
			}
			$_savePath = realpath('.').'/images/message_inbox_image/old';
			$this->ensurePath($_savePath);
			$image_name = $_savePath.'/'.$_filename;
			$fp2=@fopen($image_name,"a");
			fwrite($fp2,$response);
			fclose($fp2);
		}else{
			$image_name = "";
		}
		curl_close($ch);
	}

public function ensurePath($path) {
	str_replace('','/',$path);
	$dirArray = explode('/',$path);
	$dirString = '';
	foreach ($dirArray as $dirName) {
		$dirString .= $dirName . '/';
		@mkdir($dirString);
	}
	return;
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读