Jadual Kandungan
PHP微信开发之查询城市天气,php查询城市天气
Rumah pembangunan bahagian belakang tutorial php PHP微信开发之查询城市天气,php查询城市天气_PHP教程

PHP微信开发之查询城市天气,php查询城市天气_PHP教程

Jul 12, 2016 am 08:49 AM
php cuaca WeChat

PHP微信开发之查询城市天气,php查询城市天气

PHP微信查询城市天气,首先,你需要找到一个获取天气的API,此处,我用的是百度的apistore,申请和使用API的网址:http://apistore.baidu.com/apiworks/servicedetail/112.html 

登录百度账号,并用手机发送请求获取apikey。有了apikey,可以按照它的示例来请求城市天气了。(可以按照城市中文名,拼音,城市编号等来查询) 

你可以现在本地做测试,请求完成之后,再放到自己的域名空间的脚本里。
 测试的脚本例如:(注意apikey填写自己申请的) 

header('Content-type:text/html;charset=UTF-8');

$ch = curl_init();
$url = 'http://apis.baidu.com/apistore/weatherservice/cityname?cityname=上海';
$header = array(
 'apikey: ',//你的apikey
);
// 添加apikey到header
curl_setopt($ch, CURLOPT_HTTPHEADER , $header);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
// 执行HTTP请求
curl_setopt($ch , CURLOPT_URL , $url);
$res = curl_exec($ch);

$res = json_decode($res, true);
echo "<pre class="brush:php;toolbar:false">";
print_r($res);
echo "
Salin selepas log masuk
"; $contentStr = ""; foreach($res as $k=>$v){ if($k == "retData"){ $contentStr = "城市:" . $v['city'] . "\n"; $contentStr .= "日期:" . $v['date'] . "\n"; $contentStr .= "天气:" . $v['weather'] ."\n"; $contentStr .= "平均气温:" . $v['temp'] . "℃\n"; $contentStr .= "最低气温:" . $v['l_tmp'] ."℃\n"; $contentStr .= "最高气温:" . $v['h_tmp'] . "℃\n"; $contentStr .= "风力:" . $v['WS'] . "\n"; $contentStr .= "风向:" . $v['WD'] . "\n"; $contentStr .= "日出时间:" . $v['sunrise'] . "\n"; $contentStr .= "日落时间:" . $v['sunset'] . "\n"; $contentStr .= "经度:" . $v['longitude'] . "\n"; $contentStr .= "纬度:" . $v['latitude']; } } echo $contentStr;

如果你填写了自己的apikey,那么应该能获取到所请求的天气了:

如果能返回正常的数据了,那么就可以放到你的域名空间里了。(公众平台里开发者中心填写的url,该url有连接微信接口等功能)
如果你看不懂下面的代码或者第一次接触微信开发,可以参考我之前的文章:http://www.bkjia.com/article/87252.htm

下面的代码是responseMsg的一部分:

 public function responseMsg(){
 
<span style="white-space:pre"> </span>//get post data, May be due to the different environments
 $postStr = $GLOBALS["HTTP_RAW_POST_DATA"]; //接收微信发来的XML数据

 //extract post data
 if(!empty($postStr)){
  
  //解析post来的XML为一个对象$postObj
  $postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);
 
  $fromUsername = $postObj->FromUserName; //请求消息的用户
  $toUsername = $postObj->ToUserName; //"我"的公众号id
  $keyword = trim($postObj->Content); //用户发送的消息内容
  $time = time(); //时间戳
  $msgtype = 'text'; //消息类型:文本
  $textTpl = "<xml>
 <ToUserName><![CDATA[%s]]></ToUserName>
 <FromUserName><![CDATA[%s]]></FromUserName>
 <CreateTime>%s</CreateTime>
 <MsgType><![CDATA[%s]]></MsgType>
 <Content><![CDATA[%s]]></Content>
 </xml>";

  if($postObj->MsgType == 'event'){ //如果XML信息里消息类型为event
  if($postObj->Event == 'subscribe'){ //如果是订阅事件
   $contentStr = "欢迎订阅misaka去年夏天!\n更多精彩内容:http://blog.csdn.net/misakaqunianxiatian";
   $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgtype, $contentStr);
   echo $resultStr;
   exit();
  }
  }

  $which = mb_substr($keyword, 0, 2, 'UTF-8');//获取要返回什么样的信息

  if($which== "翻译"){ //如果要进行翻译
  //调用有道翻译API进行翻译

  }elseif($which == "天气"){
  $wea = $which;
  $city = str_replace($wea, "", $keyword);

  $ch = curl_init();
  $url = 'http://apis.baidu.com/apistore/weatherservice/cityname&#63;cityname=' . $city;
  $header = array('apikey: '); //此处的apikey使用自己申请的apikey,填在冒号之后

  // 添加apikey到header
  curl_setopt($ch, CURLOPT_HTTPHEADER , $header);
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  // 执行HTTP请求
  curl_setopt($ch , CURLOPT_URL , $url);
  $res = curl_exec($ch);
  $res = json_decode($res, true);
  $contentStr = "";
  foreach($res as $k=>$v){

   if($k == "retData"){
   $contentStr = "城市:" . $v['city'] . "\n";
   $contentStr .= "日期:" . $v['date'] . "\n";
   $contentStr .= "天气:" . $v['weather'] ."\n";
   $contentStr .= "平均气温:" . $v['temp'] . "℃\n";
   $contentStr .= "最低气温:" . $v['l_tmp'] ."℃\n";
   $contentStr .= "最高气温:" . $v['h_tmp'] . "℃\n";
   $contentStr .= "风力:" . $v['WS'] . "\n";
   $contentStr .= "风向:" . $v['WD'] . "\n";
   $contentStr .= "日出时间:" . $v['sunrise'] . "\n";
   $contentStr .= "日落时间:" . $v['sunset'] . "\n";
   $contentStr .= "经度:" . $v['longitude'] . "\n";
   $contentStr .= "纬度:" . $v['latitude'];
   }
  }
  $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgtype, $contentStr);
  echo $resultStr;
  exit();

  }else{
  $contentStr = "输入翻译XXX可以进行翻译(=&#12539;ω&#12539;=)\n\n输入天气XX可以查询城市天气";
  $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgtype, $contentStr);
  echo $resultStr;
  exit();
  }

Salin selepas log masuk
 
 

完成之后(别忘了填写apikey),你的订阅号里,输入天气上海,那么应该能查到上海当天的天气了。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持帮客之家。

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/1136606.htmlTechArticlePHP微信开发之查询城市天气,php查询城市天气 PHP微信查询城市天气,首先,你需要找到一个获取天气的API,此处,我用的是百度的apistore,...
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Apakah pemalsuan permintaan lintas tapak (CSRF) dan bagaimana anda melaksanakan perlindungan CSRF di PHP? Apakah pemalsuan permintaan lintas tapak (CSRF) dan bagaimana anda melaksanakan perlindungan CSRF di PHP? Apr 07, 2025 am 12:02 AM

Dalam PHP, anda boleh mencegah serangan CSRF dengan menggunakan token yang tidak dapat diramalkan. Kaedah khusus termasuk: 1. Menjana dan membenamkan token CSRF dalam bentuk; 2. Sahkan kesahihan token semasa memproses permintaan.

Terangkan ungkapan perlawanan (Php 8) dan bagaimana ia berbeza dari suis. Terangkan ungkapan perlawanan (Php 8) dan bagaimana ia berbeza dari suis. Apr 06, 2025 am 12:03 AM

Dalam Php8, ungkapan perlawanan adalah struktur kawalan baru yang mengembalikan hasil yang berbeza berdasarkan nilai ungkapan. 1) Ia sama dengan pernyataan suis, tetapi mengembalikan nilai dan bukannya blok pernyataan pelaksanaan. 2) Ekspresi perlawanan secara ketat (===), yang meningkatkan keselamatan. 3) Ia mengelakkan kemungkinan ketinggalan dalam penyataan suis dan meningkatkan kesederhanaan dan kebolehbacaan kod.

PHP dan Python: Membandingkan dua bahasa pengaturcaraan yang popular PHP dan Python: Membandingkan dua bahasa pengaturcaraan yang popular Apr 14, 2025 am 12:13 AM

PHP dan Python masing -masing mempunyai kelebihan mereka sendiri, dan memilih mengikut keperluan projek. 1.PHP sesuai untuk pembangunan web, terutamanya untuk pembangunan pesat dan penyelenggaraan laman web. 2. Python sesuai untuk sains data, pembelajaran mesin dan kecerdasan buatan, dengan sintaks ringkas dan sesuai untuk pemula.

Perbezaan antara program H5 dan mini dan aplikasi Perbezaan antara program H5 dan mini dan aplikasi Apr 06, 2025 am 10:42 AM

H5. Perbezaan utama antara program mini dan aplikasi ialah: Senibina Teknikal: H5 adalah berdasarkan teknologi web, dan program mini dan aplikasi adalah aplikasi bebas. Pengalaman dan Fungsi: H5 adalah ringan dan mudah digunakan, dengan fungsi terhad; Program mini adalah ringan dan mempunyai interaktif yang baik; Aplikasi berkuasa dan mempunyai pengalaman yang lancar. Keserasian: H5 adalah serasi, aplikasinya dan aplikasinya yang serasi dengan platform. Kos Pembangunan: H5 mempunyai kos pembangunan yang rendah, program mini sederhana, dan aplikasi tertinggi. Senario yang berkenaan: H5 sesuai untuk paparan maklumat, applet sesuai untuk aplikasi ringan, dan aplikasi sesuai untuk fungsi kompleks.

Masa Depan PHP: Adaptasi dan Inovasi Masa Depan PHP: Adaptasi dan Inovasi Apr 11, 2025 am 12:01 AM

Masa depan PHP akan dicapai dengan menyesuaikan diri dengan trend teknologi baru dan memperkenalkan ciri -ciri inovatif: 1) menyesuaikan diri dengan pengkomputeran awan, kontena dan seni bina microservice, menyokong Docker dan Kubernetes; 2) memperkenalkan pengkompil JIT dan jenis penghitungan untuk meningkatkan prestasi dan kecekapan pemprosesan data; 3) Berterusan mengoptimumkan prestasi dan mempromosikan amalan terbaik.

PHP vs Python: Memahami Perbezaan PHP vs Python: Memahami Perbezaan Apr 11, 2025 am 12:15 AM

PHP dan Python masing -masing mempunyai kelebihan sendiri, dan pilihannya harus berdasarkan keperluan projek. 1.Php sesuai untuk pembangunan web, dengan sintaks mudah dan kecekapan pelaksanaan yang tinggi. 2. Python sesuai untuk sains data dan pembelajaran mesin, dengan sintaks ringkas dan perpustakaan yang kaya.

Terangkan jenis yang ketat (mengisytiharkan (strict_types = 1);) dalam php. Terangkan jenis yang ketat (mengisytiharkan (strict_types = 1);) dalam php. Apr 07, 2025 am 12:05 AM

Jenis yang ketat dalam PHP didayakan dengan menambah mengisytiharkan (strict_types = 1); di bahagian atas fail. 1) Ia memaksa jenis pemeriksaan parameter fungsi dan pulangan nilai untuk mengelakkan penukaran jenis tersirat. 2) Menggunakan jenis yang ketat dapat meningkatkan kebolehpercayaan dan kebolehprediksi kod, mengurangkan pepijat, dan meningkatkan kebolehkerjaan dan kebolehbacaan.

Bagaimanakah anda dapat mengelakkan kelas daripada dilanjutkan atau kaedah yang ditindas dalam PHP? (kata kunci akhir) Bagaimanakah anda dapat mengelakkan kelas daripada dilanjutkan atau kaedah yang ditindas dalam PHP? (kata kunci akhir) Apr 08, 2025 am 12:03 AM

Dalam PHP, kata kunci akhir digunakan untuk mencegah kelas daripada diwarisi dan kaedah ditimpa. 1) Apabila menandakan kelas sebagai muktamad, kelas tidak boleh diwarisi. 2) Apabila menandakan kaedah sebagai muktamad, kaedah itu tidak boleh ditulis semula oleh subkelas. Menggunakan kata kunci akhir memastikan kestabilan dan keselamatan kod anda.

See all articles