一个高效的根据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);

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Ciri dan Kelebihan Bahasa C: Mengapakah ia merupakan salah satu bahasa pengaturcaraan yang paling popular? Sebagai bahasa pengaturcaraan peringkat tinggi tujuan umum, bahasa C mempunyai banyak ciri dan kelebihan unik, itulah sebabnya ia telah menjadi salah satu bahasa pengaturcaraan yang paling popular. Artikel ini akan meneroka ciri dan kelebihan bahasa C, serta aplikasinya yang meluas dalam pelbagai bidang. Pertama sekali, bahasa C mempunyai sintaks yang ringkas dan struktur yang jelas. Berbanding dengan bahasa pengaturcaraan lain, sintaks bahasa C agak mudah dan mudah difahami dan dipelajari. Ia menggunakan ciri-ciri bahasa semula jadi untuk membolehkan pengaturcara

Sejak Disember 2021, telefon mudah alih Huawei & Honor telah melancarkan fungsi widget desktop Vientiane. Banyak fungsi mudah, kawalan desktop yang dioptimumkan secara visual, dsb. telah ditambahkan pada banyak desktop mudah alih pengguna menjelang Ogos tahun ini, dua platform pedagang utama turut membuka data sukan dan kesihatan, data cuaca, data muzik, data sistem, dsb. , membolehkan pengguna menggunakan desktop mudah alih mereka Operasi interaktif lebih mudah, lebih pantas dan lebih menarik, membolehkan pengguna membuat DIY dan mencipta desktop peribadi mereka sendiri. Desktop mudah alih selepas menambah widget Baru-baru ini, ramai pengguna telefon mudah alih Huawei telah melaporkan bahawa mereka tidak jelas tentang cara menambah widget desktop pada telefon mudah alih Huawei dan Honor, mengadu bahawa prosesnya terlalu rumit dan menyusahkan. Untuk membantu semua orang menyelesaikan masalah ini, Qian Shuxian telah menyediakan proses operasi terperinci, berharap dapat

Ruang pemacu C kehabisan! 5 kaedah pembersihan yang cekap didedahkan! Dalam proses menggunakan komputer, ramai pengguna akan menghadapi situasi di mana ruang pemacu C kehabisan terutamanya selepas menyimpan atau memasang sejumlah besar fail, ruang pemacu C yang tersedia akan berkurangan dengan cepat, yang akan menjejaskan prestasi dan. kelajuan komputer berjalan. Pada masa ini, sangat perlu untuk membersihkan pemacu C. Jadi, bagaimana untuk membersihkan pemacu C dengan cekap? Seterusnya, artikel ini akan mendedahkan 5 kaedah pembersihan yang cekap untuk membantu anda menyelesaikan masalah kekurangan ruang pemacu C dengan mudah. 1. Bersihkan fail sementara ialah fail sementara yang dijana semasa komputer sedang berjalan.

Python dan C++ ialah dua bahasa pengaturcaraan yang popular, masing-masing mempunyai kelebihan dan kekurangannya sendiri. Bagi orang yang ingin belajar pengaturcaraan, memilih untuk belajar Python atau C++ selalunya merupakan keputusan penting. Artikel ini akan meneroka kos pembelajaran Python dan C++ dan membincangkan bahasa yang lebih sesuai untuk masa dan usaha. Mula-mula, mari kita mulakan dengan Python. Python ialah bahasa pengaturcaraan peringkat tinggi yang ditafsirkan yang terkenal dengan kemudahan pembelajaran, kod yang jelas dan sintaks yang ringkas. Berbanding dengan C++, Python

Tajuk: Panduan Amalan Cekap untuk Penukaran Pengekodan Bahasa Go Dalam pembangunan perisian harian, kita sering menghadapi keperluan untuk menukar teks dalam pengekodan yang berbeza. Sebagai bahasa pengaturcaraan yang cekap dan moden, bahasa Go menyediakan perpustakaan standard yang kaya dan fungsi terbina dalam, menjadikannya sangat mudah dan cekap untuk melaksanakan penukaran pengekodan teks. Artikel ini akan memperkenalkan garis panduan praktikal tentang cara melakukan penukaran pengekodan dalam bahasa Go dan memberikan contoh kod khusus. 1.Pengekodan UTF-8 dan penukaran rentetan Dalam bahasa Go, rentetan menggunakan pengekodan UTF-8 secara lalai

Fungsi dan ciri bahasa Go bahasa Go, juga dikenali sebagai Golang, ialah bahasa pengaturcaraan sumber terbuka yang dibangunkan oleh Google Ia pada asalnya direka untuk meningkatkan kecekapan dan kebolehselenggaraan pengaturcaraan. Sejak kelahirannya, bahasa Go telah menunjukkan daya tarikan uniknya dalam bidang pengaturcaraan dan telah mendapat perhatian dan pengiktirafan yang meluas. Artikel ini akan menyelidiki fungsi dan ciri bahasa Go dan menunjukkan kuasanya melalui contoh kod tertentu. Sokongan serentak asli Bahasa Go sememangnya menyokong pengaturcaraan serentak, yang dilaksanakan melalui mekanisme goroutine dan saluran.

Penerokaan mendalam: Menggunakan bahasa Go untuk pembangunan perangkak yang cekap Pengenalan: Dengan perkembangan pesat Internet, mendapatkan maklumat menjadi lebih mudah. Sebagai alat untuk mendapatkan data tapak web secara automatik, perangkak telah menarik perhatian dan perhatian yang semakin meningkat. Di antara banyak bahasa pengaturcaraan, bahasa Go telah menjadi bahasa pembangunan perangkak pilihan bagi kebanyakan pembangun kerana kelebihannya seperti konkurensi yang tinggi dan prestasi yang berkuasa. Artikel ini akan meneroka penggunaan bahasa Go untuk pembangunan perangkak yang cekap dan memberikan contoh kod khusus. 1. Kelebihan pembangunan perangkak bahasa Go: Keselarasan tinggi: Bahasa Go

Akan ada fungsi ramalan cuaca pada desktop, jadi bagaimana untuk memulihkan ramalan cuaca desktop? Pengguna perlu mengklik Alat Tetingkap pada desktop, kemudian klik Cuaca, dan pilih komponen cuaca. Pengenalan kaedah pemulihan ramalan cuaca desktop ini akan memberitahu anda kaedah operasi khusus Berikut ialah pengenalan terperinci, sila lihat! Bagaimana untuk memulihkan ramalan cuaca desktop Jawapan: Pilih cuaca dalam widget desktop, dan kemudian tambahkannya pada desktop. Kaedah khusus: kaedah ios: 1. Tekan lama skrin Apple, dan kemudian klik tanda + di bahagian atas sebelah kiri. 2. Cari cuaca dan buka apl. 3. Kemudian pilih gaya komponen cuaca dan klik Tambah Widget. 4. Kemudian klik Selesai di bahagian atas sebelah kanan. Kaedah Android: 1. Tekan lama skrin dan klik pada widget. 2. Klik pada langit
