一个高效的根据IP自动显示天气预报的方案
php代码
<?php class weather{ // 省和省会 private $capital = array( '黑龙江省'=>'哈尔滨市', '吉林省'=>'长春市', '辽宁省'=>'沈阳市', '河北省'=>'石家庄市', '山西省'=>'太原市', '山东省'=>'济南市', '青海省'=>'西宁市', '甘肃省'=>'兰州市', '陕西省'=>'西安市', '河南省'=>'郑州市', '江苏省'=>'南京市', '四川省'=>'成都市', '湖北省'=>'武汉市', '安徽省'=>'合肥市', '浙江省'=>'杭州市', '湖南省'=>'长沙市', '江西省'=>'南昌市', '贵州省'=>'贵阳市', '福建省'=>'福州市', '台湾省'=>'台北市', '云南省'=>'昆明市', '广东省'=>'广州市', '海南省'=>'海口市', '上海市'=>'上海', '北京市'=>'北京', '天津市'=>'天津', '重庆市'=>'重庆', '香港'=>'香港', '澳门'=>'澳门', '新疆'=>'乌鲁木齐市', '内蒙古'=>'呼和浩特市', '宁夏'=>'银川市', '西藏'=>'拉萨市', '广西'=>'南宁市' ); public $province = '北京';// 默认 public $city = '北京';// 默认 // 获取ip static function getIP(){ $ip = '127.0.0.1'; if(isset($_SERVER)){ if(isset($_SERVER["HTTP_X_FORWARDED_FOR"])){ $ip = $_SERVER["HTTP_X_FORWARDED_FOR"]; }else if(isset($_SERVER["HTTP_CLIENT_IP"])) { $ip = $_SERVER["HTTP_CLIENT_IP"]; }else{ $ip = $_SERVER["REMOTE_ADDR"]; } }else{ if(getenv("HTTP_X_FORWARDED_FOR")){ $ip = getenv("HTTP_X_FORWARDED_FOR"); }else if(getenv("HTTP_CLIENT_IP")) { $ip = getenv("HTTP_CLIENT_IP"); }else{ $ip = getenv("REMOTE_ADDR"); } } return $ip; } public function setArea($addr){ // 分割省市 foreach($this->capital as $p => $c){ if(strpos($addr,$p) === 0){ $this->province = str_replace(array('省','市'),'',$p); $this->city = substr($addr,strlen($p)); if($this->city == ''){ $this->city = $c;// 默认省会 } } } } public function getAreaCode(){ $code = '101010100';// 默认北京 // 到本地地区库里找中国气象地区编码,可以把序列化数据直接反序列化后放到本文件里,会更快 $area = file_get_contents("area.php"); $area = unserialize($area); //print_r($area); $province = array(); foreach($area as $k => $v){ $province[$k] = $v['level0']; } $pid = array_search($this->province,$province); if($pid !== false){ $citys = $area[$pid]['level1']; $cityid = array_search($this->city,$citys); if($cityid !== false){ $code = '101'.$cityid.'01'; }else{ $code = '101'.$pid.'0101'; } } return $code; } } /* 纯真ip库返回的地区格式如下: xx省xx市 或者 xx市 如果是自治区则为:新疆乌鲁木齐市,分割省市极麻烦 */ $weather = new weather(); // php的扩展iplocation $addrarr = iplocation_fetch(weather::getIP()); $addr = iconv('gbk','utf-8',$addrarr['province']); $weather->setArea($addr); $code = $weather->getAreaCode(); // 尝试从redis里读取天气数据 $redis_host = '127.0.0.1'; $redis_port = 6379; /* redis connect */ $redis = new Redis(); $redis->connect($redis_host, $redis_port); $data = $redis->get($code); if(!$data){ // 从中国气象去抓,并存入redis $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, "http://m.weather.com.cn/data/{$code}.html"); curl_setopt($curl, CURLOPT_HEADER, 0); curl_setopt ($curl, CURLOPT_TIMEOUT, 30 ); curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); $data = curl_exec($curl); curl_close($curl); if($data){ $redis->set($code,$data); $redis->EXPIRE($code,3600); }else{ echo 'weather.com.cn 连接超时'; } } print_r($data);

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

AI Hentai Generator
Générez AI Hentai gratuitement.

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)

Caractéristiques et avantages du langage C : Pourquoi est-il l'un des langages de programmation les plus populaires ? En tant que langage de programmation généraliste de haut niveau, le langage C présente de nombreuses fonctionnalités et avantages uniques, c'est pourquoi il est devenu l'un des langages de programmation les plus populaires. Cet article explorera les caractéristiques et les avantages du langage C, ainsi que sa large application dans divers domaines. Tout d’abord, le langage C a une syntaxe concise et une structure claire. Comparée à d’autres langages de programmation, la syntaxe du langage C est relativement simple et facile à comprendre et à apprendre. Il utilise les caractéristiques du langage naturel pour permettre aux programmeurs de

Depuis décembre 2021, les téléphones mobiles Huawei & Honor ont lancé la fonction widget de bureau Vientiane. De nombreuses fonctions pratiques, des commandes de bureau visuellement optimisées, etc. ont été ajoutées aux ordinateurs de bureau mobiles de nombreux utilisateurs ; en août de cette année, les deux principales plates-formes marchandes ont également ouvert les données sportives et de santé, les données météorologiques, les données musicales, les données système, etc. , permettant aux utilisateurs d'utiliser leurs bureaux mobiles. L'opération interactive est plus pratique, plus rapide et plus intéressante, permettant aux utilisateurs de bricoler et de créer leur propre bureau personnalisé. Bureau mobile après l'ajout de widgets Récemment, de nombreux utilisateurs de téléphones mobiles Huawei ont signalé qu'ils ne savaient pas comment ajouter des widgets de bureau sur les téléphones mobiles Huawei et Honor, se plaignant que le processus était trop compliqué et fastidieux. Afin d'aider tout le monde à résoudre ce problème, Qian Shuxian a préparé un processus opérationnel détaillé, dans l'espoir de

L’espace disque C s’épuise ! 5 méthodes de nettoyage efficaces dévoilées ! Lors de l'utilisation d'ordinateurs, de nombreux utilisateurs seront confrontés à une situation dans laquelle l'espace du lecteur C s'épuise. Surtout après le stockage ou l'installation d'un grand nombre de fichiers, l'espace disponible sur le lecteur C diminuera rapidement, affectant ainsi les performances de l'ordinateur. vitesse de course. À ce stade, il est absolument nécessaire de nettoyer le lecteur C. Alors, comment nettoyer efficacement le lecteur C ? Ensuite, cet article révélera 5 méthodes de nettoyage efficaces pour vous aider à résoudre facilement le problème du manque d'espace sur le disque C. 1. Nettoyer les fichiers temporaires Les fichiers temporaires sont des fichiers temporaires générés lorsque l'ordinateur est en cours d'exécution.

Python et C++ sont deux langages de programmation populaires, chacun ayant ses propres avantages et inconvénients. Pour les personnes qui souhaitent apprendre la programmation, choisir d’apprendre Python ou C++ est souvent une décision importante. Cet article explorera les coûts d'apprentissage de Python et C++ et discutera du langage qui mérite le plus de temps et d'efforts. Commençons par Python. Python est un langage de programmation interprété de haut niveau connu pour sa facilité d'apprentissage, son code clair et sa syntaxe concise. Par rapport au C++, Python

Titre : Guide pratique efficace pour la conversion de l'encodage de langue Go Dans le développement quotidien de logiciels, nous rencontrons souvent le besoin de convertir du texte dans différents encodages. En tant que langage de programmation efficace et moderne, le langage Go fournit une riche bibliothèque standard et des fonctions intégrées, ce qui rend très simple et efficace la mise en œuvre de la conversion d'encodage de texte. Cet article présentera des directives pratiques sur la manière d'effectuer une conversion d'encodage dans le langage Go et fournira des exemples de code spécifiques. 1.Encodage UTF-8 et conversion de chaînes Dans le langage Go, les chaînes utilisent l'encodage UTF-8 par défaut

Fonctions et caractéristiques du langage Go Le langage Go, également connu sous le nom de Golang, est un langage de programmation open source développé par Google. Il a été initialement conçu pour améliorer l'efficacité et la maintenabilité de la programmation. Depuis sa naissance, le langage Go a montré son charme unique dans le domaine de la programmation et a reçu une large attention et reconnaissance. Cet article approfondira les fonctions et caractéristiques du langage Go et démontrera sa puissance à travers des exemples de code spécifiques. Prise en charge native de la concurrence Le langage Go prend automatiquement en charge la programmation simultanée, qui est implémentée via les mécanismes goroutine et canal.

Exploration approfondie : Utilisation du langage Go pour un développement efficace de robots Introduction : Avec le développement rapide d'Internet, obtenir des informations est devenu de plus en plus pratique. En tant qu'outil permettant d'obtenir automatiquement des données de sites Web, les robots d'exploration ont attiré une attention et une attention croissantes. Parmi les nombreux langages de programmation, le langage Go est devenu le langage de développement de robots préféré de nombreux développeurs en raison de ses avantages tels qu'une concurrence élevée et des performances puissantes. Cet article explorera l'utilisation du langage Go pour un développement efficace de robots et fournira des exemples de code spécifiques. 1. Avantages du développement de robots d'exploration du langage Go : Concurrence élevée : langage Go

Il y aura une fonction de prévisions météo sur le bureau, alors comment restaurer les prévisions météo du bureau ? Les utilisateurs doivent cliquer sur Outils de fenêtre sur le bureau, puis cliquer sur Météo et sélectionner un composant météo. Cette introduction à la méthode de récupération des prévisions météorologiques de bureau vous indiquera la méthode de fonctionnement spécifique. Ce qui suit est une introduction détaillée, jetez-y un œil ! Comment restaurer les prévisions météo du bureau ? Réponse : Sélectionnez la météo dans le widget du bureau, puis ajoutez-la au bureau. Méthode spécifique : méthode iOS : 1. Appuyez longuement sur l'écran Apple, puis cliquez sur le signe + en haut à gauche. 2. Recherchez la météo et ouvrez l'application. 3. Sélectionnez ensuite le style du composant météo et cliquez sur Ajouter un widget. 4. Cliquez ensuite sur Terminé en haut à droite. Méthode Android : 1. Appuyez longuement sur l'écran et cliquez sur le widget. 2. Cliquez sur le ciel
