获取微信XML格式中传来的图片并保存到本地
发布时间:2020-12-16 08:41:55 所属栏目:百科 来源:网络整理
导读:微信开启防外链后,一种方法是绕开外链,另一种方法自然是将图片保存到本地,在取的时候从本地去获取图片,那么如何从微信返回的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; } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 自定义 xml schemas(3)
- Flex中用DateFormatter转换String类型的时间格式秒不见了是
- c# – 将对象的linq表达式应用于该对象是项目属性的项目列表
- Flex 元数据(metadata)的使用
- 【cocos2d-html5、cocos2dx+jsbinding、cocos2dx-lua】
- vue中watch和computed为什么能监听到数据的改变以及不同之处
- Cocos2d-x 3.2 onEnter与onEnterTransitionDidFinish的区别
- c# – List.Find()即使谓词匹配也返回null
- C#/ Salesforce:必须约束通用,不能约束通用
- Restful API 的设计规范