header('Content-Type:text/html;charset=utf-8');
class WeChatMsgType
{
private $toUserName;
private $fromUserName;
private $xmlModle;
private $createTime;
public function SetUserInfo($toUserName,$fromUserName) //设置用户信息
{
$this->toUserName = $toUserName;
$this->fromUserName = $fromUserName;
$this->createTime = time();
}
public function WeatherMsg($cityName)//天气预报信息
{
$url = "http://api.map.baidu.com/telematics/v3/weather?location=".$cityName."&output=json&ak=11ffd27d38deda622f51c9d314d46b17";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$output = curl_exec($ch);
curl_close($ch);
$result = json_decode($output, true);
if ($result["error"] != 0){
return $result["status"];
}
$curHour = (int)date('H',time());
$weather = $result["results"][0];
$ImageTexts = array();
$ImageTexts[0] = self::SetImageTextInfo($weather['currentCity'].'天气预报',"", "", "");
//$aa=var_export(urldecode(urlencode($weather)),true);
//file_put_contents("debug.txt", date("Y-m-d H:i:s",time()).$aa.PHP_EOL,FILE_APPEND);
for($i=0; $i
{
$ImageTexts[$i+1] = self::SetImageTextInfo($weather["weather_data"][$i]["date"]."\n".
$weather["weather_data"][$i]["weather"]." ".
$weather["weather_data"][$i]["wind"]." ".
$weather["weather_data"][$i]["temperature"],
"", (($curHour >= 6) && ($curHour < 18))?$weather["weather_data"][$i]["dayPictureUrl"]:$weather["weather_data"][$i]["nightPictureUrl"], "");
}
return self::ImageTextMsg($ImageTexts);
}
public function SetImageTextInfo($sTitle, $sDescription, $sPicUrl, $Url)
{
$item = "
";
$ret=sprintf($item, $sTitle, $sDescription, $sPicUrl,$Url);
return $ret;
}
public function ImageTextMsg($ImageTexts)
{
$this->xmlModle = "
%s
%d
";
foreach ($ImageTexts as $item)
{
$this->xmlModle = $this->xmlModle.$item;
}
$this->xmlModle = $this->xmlModle."" ;
$ret=sprintf($this->xmlModle, $this->fromUserName, $this->toUserName, $this->createTime,count($ImageTexts));
return $ret;
}
}
?>
调用用法: