php读取百度天气API Json数据
本文简单介绍如何利用百度的车联网API读到JSON数据 官方手册 http://developer.baidu.com/map/wiki/index.php?title=car/api/weather#.E8.BF.94.E5.9B.9E.E7.BB.93.E6.9E.9C 今天折腾了好几个小时才把百度API里的天气接口搞明白,说句实在的,百度也够坑的,
本文简单介绍如何利用百度的车联网API读到JSON数据
官方手册
http://developer.baidu.com/map/wiki/index.php?title=car/api/weather#.E8.BF.94.E5.9B.9E.E7.BB.93.E6.9E.9C
今天折腾了好几个小时才把百度API里的天气接口搞明白,说句实在的,百度也够坑的,我第一次试因为选的应用类型是服务器,怎么都验证不了,而且我选了sn验证白名单
第二次我直接用浏览器试了,结果成功读取到json数据,剩下再来解析....
直接上代码吧
<span style="font-size:18px;"> <title> 天气 </title> <?php require("sn_caculation.php"); //获得查询城市 if ($_POST['city']) echo $_POST['city']; $location = $_POST['city']; //经过urlcode编码 $location = urlencode($location); $output = "json"; //设置查询模式 //@param $mode //默认流浏览器模式 $mode = 0; switch ($mode){ case 0: $result = browser($output,$location); break; case 1: $result = server($output,$location); break; } function server($output,$location) { //服务端(server)测试 $ak = "xxxxxxx"; $sk = "xxxxxxx; $url = "http://api.map.baidu.com/telematics/v3/weather?ak=%s&location=%s&output=%s&sn=%s"; $querystring_arrays = array("ak" => $ak, "location" => $location, "output" => $output);</span>
//百度sn算法 $sn = caculateAKSN($ak, $sk, $url, $querystring_arrays); return sprintf($url, $ak, $location, $output, $sn); } function browser($output,$location){ //浏览器测试----- $ak = "xxxxxxxx"; $url = "http://api.map.baidu.com/telematics/v3/weather?ak=%s&location=%s&output=%s"; return sprintf($url, $ak, $location, $output); } //$template = http://api.map.baidu.com/telematics/v3/weather?location=%s&output=%s&ak=%s $weather_contents = file_get_contents($result); print_r(json_decode($weather_contents)); ?>
我从另一处提交的城市,进来之后的操作就像上面这样,这里解释几个地方,ak就是百度应用里的app key,如果是服务器类型的,secret key,浏览器类型的没有,利用百度提供的sn算法进行加密,代码如下:
<?php /** * @brief 计算SN签名算法 * @param string $ak access key * @param string $sk secret key * @param string $url url值,例如: /geosearch/nearby 不能带hostname和querstring,也不能带? * @param array $querystring_arrays 参数数组,key=>value形式。在计算签名后不能重新排序,也不能添加或者删除数据元素 * @param string $method 只能为'POST'或者'GET' */ function caculateAKSN($ak, $sk, $url, $querystring_arrays, $method = 'GET'){ if ($method === 'POST'){ ksort($querystring_arrays); } $querystring = http_build_query($querystring_arrays); return md5(urlencode($url.'?'.$querystring.$sk)); } ?>
http://developer.baidu.com/map/index.php?title=lbscloud/api/appendix
请原谅我的智商。
location可以利用urlencode进行转码,免得出错,最后拿到完整的result,利用file_get_contents就可以得到数据了,这里已数组的格式输出的。。。
初学就是蛋精姐虑....哎,就到这了,希望能帮到大家

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

JWT est une norme ouverte basée sur JSON, utilisée pour transmettre en toute sécurité des informations entre les parties, principalement pour l'authentification de l'identité et l'échange d'informations. 1. JWT se compose de trois parties: en-tête, charge utile et signature. 2. Le principe de travail de JWT comprend trois étapes: la génération de JWT, la vérification de la charge utile JWT et l'analyse. 3. Lorsque vous utilisez JWT pour l'authentification en PHP, JWT peut être généré et vérifié, et les informations sur le rôle et l'autorisation des utilisateurs peuvent être incluses dans l'utilisation avancée. 4. Les erreurs courantes incluent une défaillance de vérification de signature, l'expiration des jetons et la charge utile surdimensionnée. Les compétences de débogage incluent l'utilisation des outils de débogage et de l'exploitation forestière. 5. L'optimisation des performances et les meilleures pratiques incluent l'utilisation des algorithmes de signature appropriés, la définition des périodes de validité raisonnablement,

Liaison statique (statique: :) implémente la liaison statique tardive (LSB) dans PHP, permettant à des classes d'appel d'être référencées dans des contextes statiques plutôt que de définir des classes. 1) Le processus d'analyse est effectué au moment de l'exécution, 2) Recherchez la classe d'appel dans la relation de succession, 3) il peut apporter des frais généraux de performance.

Quelles sont les méthodes magiques de PHP? Les méthodes magiques de PHP incluent: 1. \ _ \ _ Construct, utilisé pour initialiser les objets; 2. \ _ \ _ Destruct, utilisé pour nettoyer les ressources; 3. \ _ \ _ Appel, gérer les appels de méthode inexistants; 4. \ _ \ _ GET, Implémentez l'accès à l'attribut dynamique; 5. \ _ \ _ SET, Implémentez les paramètres d'attribut dynamique. Ces méthodes sont automatiquement appelées dans certaines situations, améliorant la flexibilité et l'efficacité du code.

Deepseek-R1 autorise la bibliothèque Baidu et NetDisk: L'intégration parfaite de la pensée et de l'action profondes s'est rapidement intégrée à de nombreuses plateformes en seulement un mois. Avec sa disposition stratégique audacieuse, Baidu intègre Deepseek en tant que partenaire modèle tiers et l'intégre dans son écosystème, qui marque un progrès majeur dans sa stratégie écologique de "Big Model Search". Baidu Search et Wenxin Intelligent Intelligent Platform sont les premiers à se connecter aux fonctions de recherche profonde des grands modèles Deepseek et Wenxin, offrant aux utilisateurs une expérience de recherche IA gratuite. Dans le même temps, le slogan classique de "Vous saurez quand vous allez à Baidu", et la nouvelle version de l'application Baidu intègre également les capacités du Big Model et Deepseek de Wenxin, lançant "AI Search" et "Wide Network Information Raffinement"

Dans PHP8, les expressions de correspondance sont une nouvelle structure de contrôle qui renvoie différents résultats en fonction de la valeur de l'expression. 1) Il est similaire à une instruction Switch, mais renvoie une valeur au lieu d'un bloc d'instruction d'exécution. 2) L'expression de correspondance est strictement comparée (===), ce qui améliore la sécurité. 3) Il évite les éventuelles omissions de rupture dans les instructions de commutation et améliore la simplicité et la lisibilité du code.

En PHP, vous pouvez prévenir efficacement les attaques du CSRF en utilisant des jetons imprévisibles. Les méthodes spécifiques comprennent: 1. Générer et intégrer les jetons CSRF dans la forme; 2. Vérifiez la validité du jeton lors du traitement de la demande.

Les types stricts en PHP sont activés en ajoutant Declare (strict_types = 1); en haut du fichier. 1) Il force la vérification du type des paramètres de fonction et des valeurs de retour pour éviter la conversion de type implicite. 2) L'utilisation de types stricts peut améliorer la fiabilité et la prévisibilité du code, réduire les bogues et améliorer la maintenabilité et la lisibilité.

Dans PHP, le mot-clé final est utilisé pour empêcher les classes d'être héritées et les méthodes écrasées. 1) Lors du marquage de la classe comme final, la classe ne peut pas être héritée. 2) Lors du marquage de la méthode comme final, la méthode ne peut pas être réécrite par la sous-classe. L'utilisation de mots clés finaux garantit la stabilité et la sécurité de votre code.
