本文实例讲述了php微信公众开发之获取周边酒店信息的方法。分享给大家供大家参考。具体分析如下:

关注微信公众之后发送回复地理位置信息,即可回复周边附近的酒店信息列表,下面我就来给各位介绍利用php是怎么实现这个功能,希望全子对大家有帮助.代码如下:复制代码 代码如下:<?php  //将提交过来的信息接收 $signature = $_GET["signature"];  $timestamp = $_GET["timestamp"];  $nonce = $_GET["nonce"];  $echostr = $_GET["echostr"];  $token = "jb51.net";  //判断接入网站   //进行字典排序  $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://jb51.net/weixin/images/640_".$FromUserName.".png";  }else{  $picurl = "http://jb51.net.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程序设计有所帮助。