国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

首頁(yè) 后端開發(fā) php教程 PHP微信開發(fā)之查詢城市天氣_php實(shí)例

PHP微信開發(fā)之查詢城市天氣_php實(shí)例

Jul 06, 2016 pm 01:32 PM
php 微信

PHP微信查詢城市天氣,首先,你需要找到一個(gè)獲取天氣的API,此處,我用的是百度的apistore,申請(qǐng)和使用API的網(wǎng)址:http://apistore.baidu.com/apiworks/servicedetail/112.html?

登錄百度賬號(hào),并用手機(jī)發(fā)送請(qǐng)求獲取apikey。有了apikey,可以按照它的示例來請(qǐng)求城市天氣了。(可以按照城市中文名,拼音,城市編號(hào)等來查詢)?

你可以現(xiàn)在本地做測(cè)試,請(qǐng)求完成之后,再放到自己的域名空間的腳本里。
?測(cè)試的腳本例如:(注意apikey填寫自己申請(qǐng)的)?

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);
// 執(zhí)行HTTP請(qǐng)求
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 "
"; $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 .= "風(fēng)力:" . $v['WS'] . "\n"; $contentStr .= "風(fēng)向:" . $v['WD'] . "\n"; $contentStr .= "日出時(shí)間:" . $v['sunrise'] . "\n"; $contentStr .= "日落時(shí)間:" . $v['sunset'] . "\n"; $contentStr .= "經(jīng)度:" . $v['longitude'] . "\n"; $contentStr .= "緯度:" . $v['latitude']; } } echo $contentStr;

如果你填寫了自己的apikey,那么應(yīng)該能獲取到所請(qǐng)求的天氣了:

如果能返回正常的數(shù)據(jù)了,那么就可以放到你的域名空間里了。(公眾平臺(tái)里開發(fā)者中心填寫的url,該url有連接微信接口等功能)
如果你看不懂下面的代碼或者第一次接觸微信開發(fā),可以參考我之前的文章:http://www.php.net/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"]; //接收微信發(fā)來的XML數(shù)據(jù)

 //extract post data
 if(!empty($postStr)){
  
  //解析post來的XML為一個(gè)對(duì)象$postObj
  $postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);
 
  $fromUsername = $postObj->FromUserName; //請(qǐng)求消息的用戶
  $toUsername = $postObj->ToUserName; //"我"的公眾號(hào)id
  $keyword = trim($postObj->Content); //用戶發(fā)送的消息內(nèi)容
  $time = time(); //時(shí)間戳
  $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更多精彩內(nèi)容: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== "翻譯"){ //如果要進(jìn)行翻譯
  //調(diào)用有道翻譯API進(jìn)行翻譯

  }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使用自己申請(qǐng)的apikey,填在冒號(hào)之后

  // 添加apikey到header
  curl_setopt($ch, CURLOPT_HTTPHEADER , $header);
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  // 執(zhí)行HTTP請(qǐng)求
  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 .= "風(fēng)力:" . $v['WS'] . "\n";
   $contentStr .= "風(fēng)向:" . $v['WD'] . "\n";
   $contentStr .= "日出時(shí)間:" . $v['sunrise'] . "\n";
   $contentStr .= "日落時(shí)間:" . $v['sunset'] . "\n";
   $contentStr .= "經(jīng)度:" . $v['longitude'] . "\n";
   $contentStr .= "緯度:" . $v['latitude'];
   }
  }
  $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgtype, $contentStr);
  echo $resultStr;
  exit();

  }else{
  $contentStr = "輸入翻譯XXX可以進(jìn)行翻譯(=&#12539;ω&#12539;=)\n\n輸入天氣XX可以查詢城市天氣";
  $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgtype, $contentStr);
  echo $resultStr;
  exit();
  }

?
?

完成之后(別忘了填寫apikey),你的訂閱號(hào)里,輸入天氣上海,那么應(yīng)該能查到上海當(dāng)天的天氣了。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

本站聲明
本文內(nèi)容由網(wǎng)友自發(fā)貢獻(xiàn),版權(quán)歸原作者所有,本站不承擔(dān)相應(yīng)法律責(zé)任。如您發(fā)現(xiàn)有涉嫌抄襲侵權(quán)的內(nèi)容,請(qǐng)聯(lián)系admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費(fèi)脫衣服圖片

Undresser.AI Undress

Undresser.AI Undress

人工智能驅(qū)動(dòng)的應(yīng)用程序,用于創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用于從照片中去除衣服的在線人工智能工具。

Clothoff.io

Clothoff.io

AI脫衣機(jī)

Video Face Swap

Video Face Swap

使用我們完全免費(fèi)的人工智能換臉工具輕松在任何視頻中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費(fèi)的代碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

功能強(qiáng)大的PHP集成開發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺化網(wǎng)頁(yè)開發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級(jí)代碼編輯軟件(SublimeText3)

熱門話題

Laravel 教程
1600
29
PHP教程
1502
276
如何用PHP結(jié)合AI實(shí)現(xiàn)文本糾錯(cuò) PHP語(yǔ)法檢測(cè)與優(yōu)化 如何用PHP結(jié)合AI實(shí)現(xiàn)文本糾錯(cuò) PHP語(yǔ)法檢測(cè)與優(yōu)化 Jul 25, 2025 pm 08:57 PM

要實(shí)現(xiàn)PHP結(jié)合AI進(jìn)行文本糾錯(cuò)與語(yǔ)法優(yōu)化,需按以下步驟操作:1.選擇適合的AI模型或API,如百度、騰訊API或開源NLP庫(kù);2.通過PHP的curl或Guzzle調(diào)用API并處理返回結(jié)果;3.在應(yīng)用中展示糾錯(cuò)信息并允許用戶選擇是否采納;4.使用php-l和PHP_CodeSniffer進(jìn)行語(yǔ)法檢測(cè)與代碼優(yōu)化;5.持續(xù)收集反饋并更新模型或規(guī)則以提升效果。選擇AIAPI時(shí)應(yīng)重點(diǎn)評(píng)估準(zhǔn)確率、響應(yīng)速度、價(jià)格及對(duì)PHP的支持。代碼優(yōu)化應(yīng)遵循PSR規(guī)范、合理使用緩存、避免循環(huán)查詢、定期審查代碼,并借助X

超越燈堆:PHP在現(xiàn)代企業(yè)體系結(jié)構(gòu)中的作用 超越燈堆:PHP在現(xiàn)代企業(yè)體系結(jié)構(gòu)中的作用 Jul 27, 2025 am 04:31 AM

PHPisstillrelevantinmodernenterpriseenvironments.1.ModernPHP(7.xand8.x)offersperformancegains,stricttyping,JITcompilation,andmodernsyntax,makingitsuitableforlarge-scaleapplications.2.PHPintegrateseffectivelyinhybridarchitectures,servingasanAPIgateway

PHP中的對(duì)象關(guān)聯(lián)映射(ORM)性能調(diào)整 PHP中的對(duì)象關(guān)聯(lián)映射(ORM)性能調(diào)整 Jul 29, 2025 am 05:00 AM

避免N 1查詢問題,通過提前加載關(guān)聯(lián)數(shù)據(jù)來減少數(shù)據(jù)庫(kù)查詢次數(shù);2.僅選擇所需字段,避免加載完整實(shí)體以節(jié)省內(nèi)存和帶寬;3.合理使用緩存策略,如Doctrine的二級(jí)緩存或Redis緩存高頻查詢結(jié)果;4.優(yōu)化實(shí)體生命周期,定期調(diào)用clear()釋放內(nèi)存以防止內(nèi)存溢出;5.確保數(shù)據(jù)庫(kù)索引存在并分析生成的SQL語(yǔ)句以避免低效查詢;6.在無需跟蹤變更的場(chǎng)景下禁用自動(dòng)變更跟蹤,改用數(shù)組或輕量模式提升性能。正確使用ORM需結(jié)合SQL監(jiān)控、緩存、批量處理和適當(dāng)優(yōu)化,在保持開發(fā)效率的同時(shí)確保應(yīng)用性能。

用PHP和RabbitMQ建造彈性微服務(wù) 用PHP和RabbitMQ建造彈性微服務(wù) Jul 27, 2025 am 04:32 AM

要構(gòu)建彈性的PHP微服務(wù),需使用RabbitMQ實(shí)現(xiàn)異步通信,1.通過消息隊(duì)列解耦服務(wù),避免級(jí)聯(lián)故障;2.配置持久化隊(duì)列、持久化消息、發(fā)布確認(rèn)和手動(dòng)ACK以確??煽啃?;3.使用指數(shù)退避重試、TTL和死信隊(duì)列安全處理失??;4.通過supervisord等工具守護(hù)消費(fèi)者進(jìn)程并啟用心跳機(jī)制保障服務(wù)健康;最終實(shí)現(xiàn)系統(tǒng)在故障中持續(xù)運(yùn)作的能力。

python run shell命令示例 python run shell命令示例 Jul 26, 2025 am 07:50 AM

使用subprocess.run()可安全執(zhí)行shell命令并捕獲輸出,推薦以列表傳參避免注入風(fēng)險(xiǎn);2.需要shell特性時(shí)可設(shè)shell=True,但需警惕命令注入;3.使用subprocess.Popen可實(shí)現(xiàn)實(shí)時(shí)輸出處理;4.設(shè)置check=True可在命令失敗時(shí)拋出異常;5.簡(jiǎn)單場(chǎng)景可直接鏈?zhǔn)秸{(diào)用獲取輸出;日常應(yīng)優(yōu)先使用subprocess.run(),避免使用os.system()或已棄用模塊,以上方法覆蓋了Python中執(zhí)行shell命令的核心用法。

為PHP創(chuàng)建準(zhǔn)備生產(chǎn)的Docker環(huán)境 為PHP創(chuàng)建準(zhǔn)備生產(chǎn)的Docker環(huán)境 Jul 27, 2025 am 04:32 AM

使用正確的PHP基礎(chǔ)鏡像并配置安全、性能優(yōu)化的Docker環(huán)境是實(shí)現(xiàn)生產(chǎn)就緒的關(guān)鍵。1.選用php:8.3-fpm-alpine作為基礎(chǔ)鏡像以減少攻擊面并提升性能;2.通過自定義php.ini禁用危險(xiǎn)函數(shù)、關(guān)閉錯(cuò)誤顯示并啟用Opcache及JIT以增強(qiáng)安全與性能;3.使用Nginx作為反向代理,限制訪問敏感文件并正確轉(zhuǎn)發(fā)PHP請(qǐng)求至PHP-FPM;4.采用多階段構(gòu)建優(yōu)化鏡像,移除開發(fā)依賴,設(shè)置非root用戶運(yùn)行容器;5.可選Supervisord管理多個(gè)進(jìn)程如cron;6.部署前驗(yàn)證無敏感信息泄

VSCODE設(shè)置。JSON位置 VSCODE設(shè)置。JSON位置 Aug 01, 2025 am 06:12 AM

settings.json文件位于用戶級(jí)或工作區(qū)級(jí)路徑,用于自定義VSCode設(shè)置。1.用戶級(jí)路徑:Windows為C:\Users\\AppData\Roaming\Code\User\settings.json,macOS為/Users//Library/ApplicationSupport/Code/User/settings.json,Linux為/home//.config/Code/User/settings.json;2.工作區(qū)級(jí)路徑:項(xiàng)目根目錄下的.vscode/settings

深入了解PHP的內(nèi)部垃圾收集機(jī)制 深入了解PHP的內(nèi)部垃圾收集機(jī)制 Jul 28, 2025 am 04:44 AM

PHP的垃圾回收機(jī)制基于引用計(jì)數(shù),但循環(huán)引用需靠周期性運(yùn)行的循環(huán)垃圾回收器處理;1.引用計(jì)數(shù)在變量無引用時(shí)立即釋放內(nèi)存;2.循環(huán)引用導(dǎo)致內(nèi)存無法自動(dòng)釋放,需依賴GC檢測(cè)并清理;3.GC在“可能根”zval達(dá)閾值或手動(dòng)調(diào)用gc_collect_cycles()時(shí)觸發(fā);4.長(zhǎng)期運(yùn)行的PHP應(yīng)用應(yīng)監(jiān)控gc_status()、適時(shí)調(diào)用gc_collect_cycles()以避免內(nèi)存泄漏;5.最佳實(shí)踐包括避免循環(huán)引用、使用gc_disable()優(yōu)化性能關(guān)鍵區(qū)及通過ORM的clear()方法解引用對(duì)象,最

See all articles