本文實例講述了php微信公眾開發之獲取周邊酒店信息的方法。分享給大家供大家參考。具體分析如下:
			關注微信公眾之后發送回復地理位置信息,即可回復周邊附近的酒店信息列表,下面我就來給各位介紹利用php是怎么實現這個功能,希望全子對大家有幫助.代碼如下:
			復制代碼代碼如下:
			<?php 
		 //將提交過來的信息接收 
		$signature = $_GET['signature']; 
		 $timestamp = $_GET['timestamp']; 
		 $nonce = $_GET['nonce']; 
		 $echostr = $_GET['echostr']; 
		 $token = "vevb.com"; 
		 //判斷接入網站 
		 
		 //進行字典排序 
		 $arr = array($token,$timestamp,$nonce); 
		 
		 sort($arr); 
		 
		 //完成字符串的拼接和sha1加密 
		 $result = sha1(join($arr)); 
		 //判斷生成的字符串和$signature是否相等,如果相等,直接輸出$echostr,這樣網站接入成功 
		 if($result==$signature){ 
		 echo $echostr; 
		 } 
		 
		 //接收微信公眾賬號接收到的信息 
		 $poststr = $GLOBALS["HTTP_RAW_POST_DATA"]; 
		 
		 $xmlObj = simplexml_load_string($poststr,'SimpleXMLElement',LIBXML_NOCDATA); 
		 $ToUserName = $xmlObj->ToUserName; 
		 $FromUserName = $xmlObj->FromUserName; 
		 $CreateTime = $xmlObj->CreateTime; 
		 $MsgType = $xmlObj->MsgType; 
		 $Content = $xmlObj->Content; 
		 
		 if($MsgType=='location'){ 
		 $Location_X = $xmlObj->Location_X; 
		 $Location_Y = $xmlObj->Location_Y; 
		 $Scale = $xmlObj->Scale; 
		 $Label = $xmlObj->Label; 
		 
		 $urlstr = "http://api.map.baidu.com/place/v2/search?&query=酒店&location=".$Location_X.",".$Location_Y."&radius=5000&output=json&ak=DESY8unmZnUlLB0mlowjuiRr";  //此處ak參數需要個人的百度開發序列號,自己去百度申請下就好了 
		 $jsonstr = file_get_contents($urlstr); 
		 $json = json_decode($jsonstr,true); 
		 
		 $pic_640 = "http://api.map.baidu.com/staticimage?width=640&height=320¢er=".$Location_Y.",".$Location_X."&zoom=15&markers=".$Location_Y.",".$Location_X."&markerStyles=l,"; 
		 $pic_80 = "http://api.map.baidu.com/staticimage?width=80&height=80¢er=".$Location_Y.",".$Location_X."&zoom=15&markers=".$Location_Y.",".$Location_X."&markerStyles=l,"; 
		 $p_640 = file_get_contents($pic_640); 
		 file_put_contents('./images/640_'.$FromUserName.".png",$p_640); 
		 $p_80 = file_get_contents($pic_80); 
		 file_put_contents('./images/80_'.$FromUserName.".png",$p_80); 
		 echo pic_send($json['results']); 
		 } 
		 function pic_send($arr){ 
		 global $ToUserName,$FromUserName; 
		 $str = "<xml> 
		 <ToUserName><![CDATA[".$FromUserName."]]></ToUserName> 
		 <FromUserName><![CDATA[".$ToUserName."]]></FromUserName> 
		 <CreateTime>".time()."</CreateTime> 
		 <MsgType><![CDATA[news]]></MsgType> 
		 <ArticleCount>".count($arr)."</ArticleCount> 
		 <Articles>"; 
		 foreach($arr as $k=>$v){ 
		 if($k==0){ 
		 $picurl = "http://vevb.com/weixin/images/640_".$FromUserName.".png"; 
		 }else{ 
		 $picurl = "http://vevb.com.net/weixin/images/80_".$FromUserName.".png"; 
		 } 
		 $str .=" 
		 <item> 
		 <Title><![CDATA[".$v['name']." 地址:".$v['address']." 電話:".$v['telephone']."]]></Title> 
		 <Description><![CDATA[".$v['name']." 地址:".$v['address']." 電話:".$v['telephone']."]]></Description> 
		 <PicUrl><![CDATA[".$picurl."]]></PicUrl> 
		 <Url><![CDATA[http://api.map.baidu.com/place/detail?uid=".$v['uid']."&output=html&src=".$v['name']."&output=html]]></Url> 
		 </item>";
		 } 
		 $str .= "</Articles></xml>"; 
		 return $str; 
		 } 
		?>
			 
			希望本文所述對大家的php程序設計有所幫助。