åºäºthinkphpå®ç°ä¾æ®ç¨æ·ipå¤æå°çä½ç½®å¹¶æä¾å¯¹åºå¤©æ°ä¿¡æ¯çåºç¨
æ们é½ç¥éï¼å¨å¾å¤çç½ç«é½æä¾äºç»ç¨æ·æä¾å¤©æ°é¢æ¥çåè½ï¼ææ¶ä¼åç°ï¼ç¨æ·å³ä½¿ä¸è¾å ¥ä»»ä½åèªå·±æå ³çå°çä½ç½®ä¿¡æ¯ï¼åæ ·çç½ç«ä¹å¯ä»¥å»å¤æå°çä½ç½®å¹¶ä¸æ¾ç¤ºå¤©æ°ä¿¡æ¯ï¼æ们å¯è½ä¼æ³å°ç¨ipå»å¤æå°çä½ç½®ï¼çç¡®æ¯è¿æ ·ï¼ä½æ¯ï¼å¦ææ³èªå·±ä¸æ ·å®å ¨çå¼åï¼ç¡®å®æä¸ç¹éº»ç¦ï¼æ以è¿éç®åç说ä¸ä¸è¿ä¸ªåºç¨çä¸å¡é»è¾ï¼ä»¥ç¨æ·ç¬¬ä¸æ¬¡æå¼é¡µé¢ä¸ºèµ·ç¹ï¼ï¼
1ï¼è·åipï¼ipæç §æèªå·±ç说æ³æ两ç§ï¼ä¸ç§æ¯ç¬ç«ipï¼çå®åå¨ï¼å¦ä¸ç§æ¯è·¯ç±å¨åé çipï¼è¿ä¸ªå½ç¶ä¸å ·ææç§æä¹ä¸çå¯ä¸æ§ï¼è¿ä¸¤ç§ipå½ç¶é½è¦èèï¼ç¬¬ä¸ç§é常容ææå¾ï¼å$_SERVERå çå ç´ 值å°±å¯ä»¥ï¼ä½é®é¢æ¯ç¬¬äºç§ï¼å192.168.1.1è¿æ ·çæ¯æ æ³å¤æçï¼é£ä¹å°±æ²¡æ³å¤çæå¾ç¨æ·çä½ç½®ä¿¡æ¯ï¼è¿éæ¬æ¥éç¨curlçæ©å±æ¥æåçï¼ä½æ¯è¿ä¸ªæ©å±è¯´ä»ä¹å°±æ¯æ æ³ä½¿ç¨ï¼æ以è¿ç§æ åµå æ¾å¨ä¸è¾¹ï¼ä» èèç¨æ·ä½¿ç¨ç¬ç«ip访é®çæ åµã
2ï¼å½æ们è·åipä¹åå°±åºè¯¥æ ¹æ®ipå°ååºå»æ¥æ¾ç¨æ·çipæå¨å°ï¼è¿éæ两个å°æ¹éè¦æ³¨æï¼1ï¼ipå°ååºå¿ 须为utf-8ç¼ç ï¼2ï¼æå¾çä¿¡æ¯æ¯ä¸ä¸ªå®æ´çå°åä¿¡æ¯ï¼èåé¢éè¦åå¸å称å±å¯ä»¥ï¼æ以ï¼è¦åä¸ä¸å符串çæªåï¼æå¾ç®ååå¸å°åã
3ï¼å½æå¾äºç¨æ·çå°åæ¾ç¶è¿æ¯ä¸è¡ï¼æ³æ³ï¼æç»äºå¤©æ°æ¥å£å¯¹æ¥è·åæ°æ®çæ¯åå¸ä»£ç ï¼è¿ä¸¤ä¸ªè¿æ¯è¦è½¬åä¸ä¸ï¼è¿éæéç¨äºæ´åçåæ³éååå¸ä»£ç åºæå¾è¯¥åå¸ç代ç ã
4ï¼è·åå°åå¸ç代ç ä¹åï¼å°±è¦å»è¿æ¥æ°æ®æ¥å£è·åæ°æ®ï¼è¿ä¸ªæ°æ®æ¶jsonæ°æ®ï¼éè¦json_encode()转ç ï¼æè¿éæå¾çæ¯ä¸ä¸ªå¯¹è±¡ï¼æçæ¥å£ä¸ä¸æ ·ï¼å ·ä½æ åµå ·ä½åæï¼ç¶åï¼æéè¦çå°±æ¯åé è¿äºæ°æ®ï¼è¯´æ¯è¿äºï¼å ¶å®å°±æ¯è¿ä¸ªå¯¹è±¡ï¼åæ¥åç°æ²¡æé个åé æ¯æ£ç¡®çï¼è¿æ ·æå©äºä»£ç ç移æ¤ã
5ï¼å¨è§å¾å»è°ç¨æ¨¡æ¿åé çæ°æ®ï¼ç¸ä¿¡è¿ä¸ªé½ä¼ã
6ï¼å ¶å®ä¸é¢çæ¥éª¤å·²ç»æ第ä¸æ¬¡æå¼é¡µé¢çæ´ä¸ªä¸å¡é»è¾ç»å¤çå®äºï¼è¿æä¸ä¸ªå°±æ¯æå¨è§å¾ç»ç¨æ·æä¾äºè¾å ¥åå¸åæ¥è¯¢åå¸å¤©æ°çåè½ï¼è¿æ ·æ顺åºçåæä¸ä¸ï¼æ£å¸¸çè·åç¨æ·çè¾å ¥ä¿¡æ¯å°±æ¯åå¸å
7ï¼è¿é就已ç»æå¾äºåå¸åï¼ç´æ¥åä¸è·ååå¸ä»£ç çéåå°±å¯ä»¥äºï¼è¿éæ个é常éè¦çé»è¾é®é¢å°±æ¯å å顺åºåå¦ä½å¤ææè½å¤æè¿ä¸¤ä¸ªåè½å¾å¥½çç»åå¨ä¸åï¼ä¸å®æ¯ï¼
å å¤ææ¯å¦ç³»ç»èªå¨è·ååå¸å称æ¯å¦ä¸ºç©ºï¼å¦æä¸ä¸ºç©ºåªåå¸åå°±æ¯æå¾çååï¼åä¹ï¼å°±æ示ipå°å没ææ¥è¯¢å°å¯¹åºå°åä¿¡æ¯ï¼ç´§æ¥çï¼æ³¨æä¸å®æ¯ç´§æ¥çä¸é¢ï¼æ¯é¡ºåºç»æï¼å¤æç¨æ·çè¾å ¥æ¯å¦ä¸ºç©ºï¼å¦æä¸ä¸ºç©ºï¼é£ä¹å°±è®©åå¸å为ç¨æ·è¾å ¥ï¼æ»èè¨ä¹å°±æ¯ç¨æ·çè¾å ¥æéä¸å®è¦å¤§äºç³»ç»èªå¨è·åçæéï¼è¿æ ·å°±å¯ä»¥å®æ´çæ两个代ç ç»åå¨ä¸èµ·ï¼å¦å¤ï¼ææ¯æè·åipåååºåå¸ååå«åæäºä¸¤ä¸ªæ¹æ³ã
ä¸é¢åçæ¯è¾ä¹±ï¼è¿æ ·çè¯ï¼ä¸é¢æ¯æçé¨åå®ä¾ä»£ç ï¼å å®å ¨çæåæ¹é¢åå ï¼æ°æ®æ¥å£æåäºå¤çä¸å¯ä»¥ä½¿ç¨ï¼ä» æä¾æ¹æ³åèï¼ç²è´´æ ç¨ï¼èªä¸»ç 究ã
è§å¾weather_test.html:
天æ°é¢æ¥
å³æ¶å¤©æ°ä¿¡æ¯ | |
åå¸ | {$all_info->forecast->city} |
åºæ¬å¤©æ° | {$all_info->realtime->weather} |
温度 | {$all_info->realtime->temp} |
é£å | {$all_info->realtime->WD} |
æ´æ°æ¶é´ | {$all_info->realtime->time} |
ç活建议 | |
åå¸ | {$all_info->forecast->city} |
é²å®å»ºè®® | {$all_info->index[0]->details} |
穿衣建议 | {$all_info->index[1]->details} |
è¿å¨å»ºè®® | {$all_info->index[2]->details} |
æ´è½¦å»ºè®® | {$all_info->index[3]->details} |
æ¾æ建议 | {$all_info->index[4]->details} |
æ´æ°æ¶é´ | {$all_info->realtime->time} |
æªæ¥å天天æ°ä¿¡æ¯ ãåå¸ï¼ã{$all_info->forecast->city} | ||||
项ç®/æ¥æ | ä»å¤© | æ天 | å天 | 大å天 |
æ¦åµ | {$all_info->forecast->weather1} | {$all_info->forecast->weather2} | {$all_info->forecast->weather3} | {$all_info->forecast->weather4} |
温度 | {$all_info->forecast->temp1} | {$all_info->forecast->temp2} | {$all_info->forecast->temp3} | {$all_info->forecast->temp4} |
é£å | {$all_info->forecast->wind1} | {$all_info->forecast->wind2} | {$all_info->forecast->wind3} | {$all_info->forecast->wind4} |
é£å | {$all_info->forecast->fl1} | {$all_info->forecast->fl2} | {$all_info->forecast->fl3} | {$all_info->forecast->fl4} |
ä»æ¥ç©ºæ°è´¨éç¶åµ | |
åå¸ | {$all_info->forecast->city} |
PM2.5 | {$all_info->aqi->pm25} |
PM10 | {$all_info->aqi->pm10} |
SO2 | {$all_info->aqi->so2} |
NO2 | {$all_info->aqi->no2} |
æ´æ°æ¶é´ | {$all_info->aqi->pub_time} |
public function weather_test(){ require_once './Component/Citycode.php'; //////è¿éæ¯æ ¹æ®å®¢æ·ç«¯çipå¤æå°çä½ç½® //å®ä¹ä¸¤ä¸ªæ å¿åé $count=0; $city_id='101120301';//é»è®¤å¤§æ·å $city_name_cin=$_POST['cityname']; $city_sim_name=R('Test/get_user_cityname'); //è¿æ¯ç³»ç»æ ¹æ®ipèªå¨å¤æçä½ç½® echo $city_sim_name; if($city_sim_name!=null){ $city_name_cin=$city_sim_name; } //è¿æ¯ç¨æ·è¾å ¥çä½ç½® if(!empty($_POST['cityname'])){ //æ¾ç½®ä¿¡æ¯è¦ç $city_name_cin=$_POST['cityname']; } ////////ä¸ç®¡æ¯ipå®ä½è¿æ¯ç¨æ·è¾å ¥æç»éè¦éåè·ååå¸ä»£ç çåéåªè¦$city_name_cin foreach ($citycode as $key => $value){ if($key==$city_name_cin){ $city_id=$citycode[$city_name_cin]; $count++; } } if($count==0){ echo "对ä¸èµ·ï¼æ¨è¾å ¥çå°å没ææ¾å°ï¼é»è®¤æ·åå¦"; }else{ echo $city_name_cin."ç天æ°ä¿¡æ¯å¦ä¸"; } //æ¥å£å·²ç»å¤çï¼è¯·å¿ä½¿ç¨ï¼ä» ä¾å¦ä¹ $weather_interface_url="http://weatherai.markt.xiaomi.com/wtr-v2/weather?cityId=".$city_id."&mei=e32c88633283737f5d9f381d47&device=HM2013023&miuiVersion=JHBCNBD16.0&modDevice=ce=miuiWeatherAp"; $all_weather_info = json_decode(file_get_contents($weather_interface_url)); //åé æ°æ® $this->assign("all_info",$all_weather_info); $this->display(); } /////////////////////////////////////////////////// /* * ä¸é¢ä¸¤ä¸ªåå«æ¯è·å主æºipåipæå¨å°ç两个 * æ¹æ³ï¼æåçç»ææ°å¼éè¿Ræ¹æ³ï¼è¿åè·å */ //æ¹æ³1ï¼è·åç¨æ·ip public function get_user_ip(){ //å éè¿è¿ç§ç®åçæ¹æ³è·å主æºçipï¼éè¿Ræ¹æ³è·å $host_ip=$_SERVER['SERVER_ADDR'];
return $host_ip; } //æ¹æ³2ï¼è·åå°å public function get_user_cityname(){ //å¾å°ç¨æ·çip $host_ip=R('Test/get_user_ip'); //è¿éipå°ååºå¿ é¡»è¿æ ·å®ä¾å $Ip = new \Org\Net\IpLocation('UTFWry.dat'); // å®ä¾åç±» åæ°è¡¨ç¤ºIPå°ååºæ件 //å¯ä»¥åæ¶æ¾ipååå $area = $Ip->getlocation($host_ip); // è·åååæå¡å¨æå¨çä½ç½® $city_allname=$area['country']; $sim_cityname=explode("å¸",explode("ç", $city_allname)[1])[0]; return $sim_cityname; }
çæ声æï¼æ¬æ为å主ååæç« ï¼æªç»å主å 许ä¸å¾è½¬è½½ã
声æï¼æ¬æå 容ç±ç½åèªåè´¡ç®ï¼çæå½åä½è ææï¼æ¬ç«ä¸æ¿æ ç¸åºæ³å¾è´£ä»»ãå¦æ¨åç°ææ¶å«æè¢ä¾µæçå 容ï¼è¯·èç³»admin@php.cnæ ¸å®å¤çã
ç¸å ³æç«
ç¸å ³è§é¢
ä¸é¢æ¨è
-
ç¬å¤ä¹è´±-phpå
¨æ å¼åæç¨
å ¨æ 170W+
主讲ï¼Peter-Zhu è½»æ¾å¹½é»ãç®çæå¦ï¼é常éåPHPå¦ä¹ å ¥é¨
-
ç女å¿ç»-webå端å¼åæç¨
å ¥é¨ 80W+
主讲ï¼çç»å¸å¤ª ç±æµ å ¥æ·±ãæå¿«ç®æ´ï¼é常éåå端å¦ä¹ å ¥é¨
-
天é¾å
«é¨-å®æå¼åæç¨
å®æ 120W+
主讲ï¼è¥¿é¨å¤§å®äºº æè·¯æ¸ æ°ã严谨è§èï¼éåæä¸å®webç¼ç¨åºç¡å¦ä¹
ç½åè¯è®º
ææä¸ç½çæ§åè¨ï¼è¯·éµå® æ°é»è¯Â论æÂÂå¡åÂÂè®®
æÂÂè¦Âè¯Â论