diff --git a/api/tq/city.php b/api/tq/city.php new file mode 100644 index 0000000..b52ea51 --- /dev/null +++ b/api/tq/city.php @@ -0,0 +1,412 @@ + '北京 ', + 58367 => '上海 ', + 54517 => '天津 ', + 57516 => '重庆 ', + 45005 => '香港 ', + 45011 => '澳门 ', + 50953 => '哈尔滨 ', + 50745 => '齐齐哈尔 ', + 54094 => '牡丹江 ', + 50842 => '大庆 ', + 50774 => '伊春 ', + 50884 => '双鸭山 ', + 50775 => '鹤岗 ', + 50978 => '鸡西 ', + 50873 => '佳木斯 ', + 50971 => '七台河 ', + 50468 => '黑河 ', + 50853 => '绥化 ', + 50442 => '大兴安岭 ', + 54161 => '长春 ', + 54172 => '吉林 ', + 54371 => '白山 ', + 50936 => '白城 ', + 54157 => '四平 ', + 50946 => '松原 ', + 54260 => '辽源 ', + 50945 => '大安 ', + 54363 => '通化 ', + 54342 => '沈阳 ', + 54662 => '大连 ', + 54453 => '葫芦岛 ', + 54660 => '旅顺 ', + 54346 => '本溪 ', + 54353 => '抚顺 ', + 54249 => '铁岭 ', + 54347 => '辽阳 ', + 54471 => '营口 ', + 54237 => '阜新 ', + 54324 => '朝阳 ', + 54337 => '锦州 ', + 54497 => '丹东 ', + 54339 => '鞍山 ', + 53463 => '呼和浩特 ', + 54102 => '锡林浩特 ', + 53446 => '包头 ', + 54218 => '赤峰 ', + 50527 => '海拉尔 ', + 53512 => '乌海 ', + 53543 => '鄂尔多斯 ', + 54135 => '通辽 ', + 53698 => '石家庄 ', + 54534 => '唐山 ', + 54401 => '张家口 ', + 54515 => '廊坊 ', + 53798 => '邢台 ', + 53892 => '邯郸 ', + 54616 => '沧州 ', + 54702 => '衡水 ', + 54423 => '承德 ', + 54602 => '保定 ', + 54449 => '秦皇岛 ', + 57083 => '郑州 ', + 57091 => '开封 ', + 57073 => '洛阳 ', + 57171 => '平顶山 ', + 53982 => '焦作 ', + 53990 => '鹤壁 ', + 53986 => '新乡 ', + 53898 => '安阳 ', + 54900 => '濮阳 ', + 57089 => '许昌 ', + 57186 => '漯河 ', + 57051 => '三门峡 ', + 57178 => '南阳 ', + 58005 => '商丘 ', + 57297 => '信阳 ', + 57195 => '周口 ', + 57290 => '驻马店 ', + 54823 => '济南 ', + 54857 => '青岛 ', + 54830 => '淄博 ', + 54774 => '威海 ', + 54918 => '曲阜 ', + 54938 => '临沂 ', + 54765 => '烟台 ', + 58024 => '枣庄 ', + 54806 => '聊城 ', + 54915 => '济宁 ', + 54906 => '菏泽 ', + 54827 => '泰安 ', + 54945 => '日照 ', + 54736 => '东营 ', + 54714 => '德州 ', + 54734 => '滨州 ', + 54828 => '莱芜 ', + 54843 => '潍坊 ', + 53772 => '太原 ', + 53782 => '阳泉 ', + 53976 => '晋城 ', + 53778 => '晋中 ', + 53868 => '临汾 ', + 53959 => '运城 ', + 53882 => '长治 ', + 53578 => '朔州 ', + 53674 => '忻州 ', + 53487 => '大同 ', + 58238 => '南京 ', + 58357 => '苏州 ', + 58356 => '昆山 ', + 58259 => '南通 ', + 58377 => '太仓 ', + 58349 => '吴县 ', + 58027 => '徐州 ', + 58346 => '宜兴 ', + 58248 => '镇江 ', + 58145 => '淮安 ', + 58352 => '常熟 ', + 58151 => '盐城 ', + 58246 => '泰州 ', + 58354 => '无锡 ', + 58044 => '连云港 ', + 58245 => '扬州 ', + 58343 => '常州 ', + 58131 => '宿迁 ', + 58321 => '合肥 ', + 58326 => '巢湖 ', + 58221 => '蚌埠 ', + 58424 => '安庆 ', + 58311 => '六安 ', + 58236 => '滁州 ', + 58336 => '马鞍山 ', + 58203 => '阜阳 ', + 58433 => '宣城 ', + 58429 => '铜陵 ', + 58116 => '淮北 ', + 58334 => '芜湖 ', + 58122 => '宿州 ', + 58224 => '淮南 ', + 58427 => '池州 ', + 57036 => '西安 ', + 53955 => '韩城 ', + 57245 => '安康 ', + 57127 => '汉中 ', + 57016 => '宝鸡 ', + 57048 => '咸阳 ', + 53646 => '榆林 ', + 57045 => '渭南 ', + 57143 => '商洛 ', + 53947 => '铜川 ', + 53845 => '延安 ', + 53614 => '银川 ', + 53817 => '固原 ', + 53704 => '中卫 ', + 53518 => '石嘴山 ', + 53612 => '吴忠 ', + 52889 => '兰州 ', + 52896 => '白银 ', + 53829 => '庆阳 ', + 52533 => '酒泉 ', + 57006 => '天水 ', + 52679 => '武威 ', + 52652 => '张掖 ', + 50741 => '甘南 ', + 52984 => '临夏 ', + 53915 => '平凉 ', + 52995 => '定西 ', + 52675 => '金昌 ', + 52866 => '西宁 ', + 52754 => '海北 ', + 52737 => '海西 ', + 56065 => '黄南 ', + 56043 => '果洛 ', + 56029 => '玉树 ', + 52875 => '海东 ', + 52856 => '海南 ', + 57494 => '武汉 ', + 57461 => '宜昌 ', + 57498 => '黄冈 ', + 57447 => '恩施 ', + 57476 => '荆州 ', + 57362 => '神农架 ', + 57256 => '十堰 ', + 57590 => '咸宁 ', + 57278 => '襄樊 ', + 57482 => '孝感 ', + 57381 => '随州 ', + 58407 => '黄石 ', + 57377 => '荆门 ', + 57496 => '鄂州 ', + 57679 => '长沙 ', + 57766 => '邵阳 ', + 57662 => '常德 ', + 57972 => '郴州 ', + 57649 => '吉首 ', + 57780 => '株洲 ', + 57763 => '娄底 ', + 57773 => '湘潭 ', + 57674 => '益阳 ', + 57866 => '永州 ', + 57584 => '岳阳 ', + 57872 => '衡阳 ', + 57749 => '怀化 ', + 57771 => '韶山 ', + 57558 => '张家界 ', + 58457 => '杭州 ', + 58450 => '湖州 ', + 58549 => '金华 ', + 58563 => '宁波 ', + 58646 => '丽水 ', + 58453 => '绍兴 ', + 58633 => '衢州 ', + 58452 => '嘉兴 ', + 58660 => '台州 ', + 58477 => '舟山 ', + 58659 => '温州 ', + 58606 => '南昌 ', + 57786 => '萍乡 ', + 58502 => '九江 ', + 58637 => '上饶 ', + 58617 => '抚州 ', + 57799 => '吉安 ', + 58627 => '鹰潭 ', + 57793 => '宜春 ', + 57796 => '新余 ', + 58527 => '景德镇 ', + 57993 => '赣州 ', + 58847 => '福州 ', + 59134 => '厦门 ', + 58927 => '龙岩 ', + 58834 => '南平 ', + 58846 => '宁德 ', + 58946 => '莆田 ', + 59137 => '泉州 ', + 58828 => '三明 ', + 59126 => '漳州 ', + 57816 => '贵阳 ', + 57806 => '安顺 ', + 57609 => '赤水 ', + 57713 => '遵义 ', + 57741 => '铜仁 ', + 56693 => '六盘水 ', + 57707 => '毕节 ', + 57825 => '凯里 ', + 57827 => '都匀 ', + 56294 => '成都 ', + 57602 => '泸州 ', + 57504 => '内江 ', + 56571 => '凉山 ', + 56171 => '阿坝 ', + 57313 => '巴中 ', + 57206 => '广元 ', + 56386 => '乐山 ', + 56196 => '绵阳 ', + 56198 => '德阳 ', + 56666 => '攀枝花 ', + 56287 => '雅安 ', + 56492 => '宜宾 ', + 56396 => '自贡 ', + 56146 => '甘孜州 ', + 57328 => '达州 ', + 56298 => '资阳 ', + 57415 => '广安 ', + 57405 => '遂宁 ', + 56391 => '眉山 ', + 57411 => '南充 ', + 59287 => '广州 ', + 59493 => '深圳 ', + 59312 => '潮州 ', + 59082 => '韶关 ', + 59658 => '湛江 ', + 59298 => '惠州 ', + 59280 => '清远 ', + 59289 => '东莞 ', + 59473 => '江门 ', + 59659 => '茂名 ', + 59278 => '肇庆 ', + 59501 => '汕尾 ', + 59293 => '河源 ', + 59315 => '揭阳 ', + 59117 => '梅州 ', + 59485 => '中山 ', + 59269 => '德庆 ', + 59663 => '阳江 ', + 59471 => '云浮 ', + 59488 => '珠海 ', + 59316 => '汕头 ', + 59431 => '南宁 ', + 57957 => '桂林 ', + 59051 => '阳朔 ', + 59046 => '柳州 ', + 59265 => '梧州 ', + 59453 => '玉林 ', + 59254 => '桂平 ', + 59065 => '贺州 ', + 59632 => '钦州 ', + 59249 => '贵港 ', + 59635 => '防城港 ', + 59211 => '百色 ', + 59644 => '北海 ', + 59023 => '河池 ', + 59242 => '来宾 ', + 59425 => '崇左 ', + 56778 => '昆明 ', + 56748 => '保山 ', + 56768 => '楚雄 ', + 56844 => '德宏 ', + 56975 => '红河 ', + 56951 => '临沧 ', + 56533 => '怒江 ', + 56783 => '曲靖 ', + 56964 => '思茅 ', + 56994 => '文山 ', + 56875 => '玉溪 ', + 56586 => '昭通 ', + 56651 => '丽江 ', + 56751 => '大理 ', + 59758 => '海口 ', + 59948 => '三亚 ', + 59845 => '儋州 ', + 59757 => '琼山 ', + 59941 => '通什 ', + 59856 => '文昌 ', + 51463 => '乌鲁木齐 ', + 51076 => '阿勒泰 ', + 51628 => '阿克苏 ', + 51368 => '昌吉 ', + 52203 => '哈密 ', + 51828 => '和田 ', + 51709 => '喀什 ', + 51243 => '克拉玛依 ', + 51356 => '石河子 ', + 51133 => '塔城 ', + 51656 => '库尔勒 ', + 51573 => '吐鲁番 ', + 55591 => '拉萨 ', + 55437 => '阿里 ', + 56137 => '昌都 ', + 55299 => '那曲 ', + 55578 => '日喀则 ', + 55598 => '山南 ', + 56312 => '林芝 ', + 58968 => '台北 ', + 59554 => '高雄 ', + 17060 => '伊斯坦布尔 ISTANBUL ', + 40754 => '德黑兰 TEHRAN ', + 41781 => '卡拉奇 KARACHI ', + 42182 => '新德里 NEW DELHI ', + 43466 => '科伦坡 COLOMBO ', + 47108 => '汉城 SEOUL ', + 47159 => '釜山 BUSAN ', + 47662 => '东京 TOKYO ', + 48097 => '仰光 YANGON ', + 48454 => '曼谷 BANGKOK ', + 48647 => '吉隆坡 KUALA LUMPUR ', + 48820 => '河内 HA NOI ', + 96745 => '雅加达 JAKARTA ', + 10141 => '汉堡 HAMBURG ', + 10381 => '柏林 BERLIN ', + 10637 => '法兰克福 FRANKFURT ', + 11034 => '维也纳 VIENNA ', + 16066 => '米兰 MILANO ', + 16235 => '罗马 ROMA ', + 16701 => '雅典 ATHENS ', + 2484 => '斯德哥尔摩 STOCKHOLM ', + 27612 => '莫斯科 MOSKVA ', + 3334 => '曼彻斯特 MANCHESTER ', + 3779 => '伦敦 LONDON ', + 6240 => '阿姆斯特丹 AMSTERDAM ', + 6451 => '布鲁塞尔 BRUSSELES ', + 6660 => '苏黎世 ZURICH ', + 6700 => '日内瓦 GENEVE ', + 61291 => '巴马科 BAMAKO ', + 63450 => '亚的斯亚贝巴 ADDIS ABABA ', + 63740 => '内罗毕 NAIROBI ', + 65472 => '阿克拉 ACCRA ', + 67341 => '马普托 MAPUTO ', + 68368 => '约翰内斯堡 JOHANNESBURG ', + 68396 => '曼齐尼 MANZINI ', + 68816 => '开普敦 CAPE TOWN ', + 71624 => '多伦多 TORONTO ', + 71627 => '蒙特利尔 MONTREAL ', + 71628 => '渥太华 OTTAWA ', + 71892 => '温哥华 VANCOUVER ', + 72202 => '迈阿密 MIAMI ', + 72219 => '亚特兰大 ATLANTA ', + 72243 => '休斯敦 HOUSTON ', + 72295 => '洛杉矶 LOS ANGELES ', + 72386 => '拉斯维加斯 LAS VEGAS ', + 72403 => '华盛顿 WASHINGTON DC ', + 72503 => '纽约 NEW YORK ', + 72509 => '波士顿 BOSTON ', + 72530 => '芝加哥 CHICAGO ', + 72793 => '西雅图 SEATTLE ', + 78264 => '圣地亚哥 SANTIAGO DE CUBA ', + 80222 => '波哥大 BOGOTA ', + 84628 => '利马 LIMA ', + 85799 => '蒙特港 PUERTO MONTT ', + 87585 => '布宜诺斯艾利斯 BUENOS AIRES ', + 93110 => '奥克兰 AUCKLAND ', + 93436 => '惠灵顿 WELLINGTON ', + 94767 => '悉尼 SYDNEY ', + 94868 => '墨尔本 MELBOURNE ', + 94926 => '堪培拉 CANBERRA ', + 59279 => '佛山 ', + 53753 => '吕梁 ', + 51431 => '伊宁 ') +; + +?> \ No newline at end of file diff --git a/api/tq/index.php b/api/tq/index.php index 4ee15a5..55ee3d5 100644 --- a/api/tq/index.php +++ b/api/tq/index.php @@ -1,244 +1,73 @@ - 'error', - 'code' => 400, - 'message' => '缺少必要参数: city (城市名称)', - 'example' => '/api/tq/?city=北京&type=json&lang=zh' - ], JSON_UNESCAPED_UNICODE); - exit; -} - -// 非法字符检查 -if (!preg_match('/^[\u4e00-\u9fff\w\s\-]+$/u', $city) || strlen($city) > 50) { - http_response_code(400); - echo json_encode([ - 'status' => 'error', - 'code' => 400, - 'message' => '无效的城市名称' - ], JSON_UNESCAPED_UNICODE); - exit; -} - -$result = null; -$error = null; - -// 方案1: 心知天气 API (国内数据源,优先使用) -// 方案2: 和风天气 API (国内数据源) -// 方案3: wttr.in (备选) - -// 尝试方案1: 心知天气 API (中国天气网数据) -$url1 = "https://api.seniverse.com/v1/now.json?location=" . urlencode($city) . "&language=" . ($lang === 'en' ? 'en' : 'zh-Hans'); - -$ch1 = curl_init(); -curl_setopt($ch1, CURLOPT_URL, $url1); -curl_setopt($ch1, CURLOPT_RETURNTRANSFER, true); -curl_setopt($ch1, CURLOPT_TIMEOUT, 8); -curl_setopt($ch1, CURLOPT_USERAGENT, 'Mozilla/5.0 QuickAPI/1.0'); -curl_setopt($ch1, CURLOPT_SSL_VERIFYPEER, false); - -$response1 = curl_exec($ch1); -$http_code1 = curl_getinfo($ch1, CURLINFO_HTTP_CODE); -curl_close($ch1); - -if ($http_code1 == 200 && $response1) { - $data1 = json_decode($response1, true); - - if ($data1 && isset($data1['results']) && count($data1['results']) > 0) { - $results = $data1['results'][0]; - $location = $results['location']; - $now = $results['now']; - - $result = [ - 'status' => 'success', - 'code' => 200, - 'city' => $location['name'] ?? $city, - 'region' => $location['country'] ?? null, - 'coordinates' => [ - 'latitude' => (float)$location['lat'] ?? null, - 'longitude' => (float)$location['lon'] ?? null - ], - 'current' => [ - 'temperature' => (float)$now['temperature'] ?? null, - 'feels_like' => (float)$now['feels_like'] ?? null, - 'condition' => $now['text'] ?? 'Unknown', - 'condition_code' => $now['code'] ?? null, - 'wind_speed' => (float)$now['wind_speed'] ?? null, - 'wind_speed_kph' => ((float)$now['wind_speed'] * 3.6) ?? null, - 'wind_direction' => $now['wind_direction'] ?? null, - 'wind_direction_code' => $now['wind_direction_code'] ?? null, - 'humidity' => (int)$now['humidity'] ?? null, - 'visibility' => (float)$now['visibility'] ?? null, - 'pressure' => (int)$now['pressure'] ?? null - ], - 'source' => '心知天气', - 'updated_at' => date('Y-m-d H:i:s') - ]; - } -} - -// 如果方案1失败,尝试方案2: 和风天气 API -if (!$result) { - $url2 = "https://devapi.qweather.com/v7/weather/now?location=" . urlencode($city) . "&lang=" . ($lang === 'en' ? 'en' : 'zh'); - - $ch2 = curl_init(); - curl_setopt($ch2, CURLOPT_URL, $url2); - curl_setopt($ch2, CURLOPT_RETURNTRANSFER, true); - curl_setopt($ch2, CURLOPT_TIMEOUT, 8); - curl_setopt($ch2, CURLOPT_USERAGENT, 'Mozilla/5.0 QuickAPI/1.0'); - curl_setopt($ch2, CURLOPT_SSL_VERIFYPEER, false); - - $response2 = curl_exec($ch2); - $http_code2 = curl_getinfo($ch2, CURLINFO_HTTP_CODE); - curl_close($ch2); - - if ($http_code2 == 200 && $response2) { - $data2 = json_decode($response2, true); - - if ($data2 && isset($data2['now'])) { - $now = $data2['now']; - - $result = [ - 'status' => 'success', - 'code' => 200, - 'city' => $city, - 'current' => [ - 'temperature' => (int)$now['temp'] ?? null, - 'feels_like' => (int)$now['feelsLike'] ?? null, - 'condition_code' => $now['icon'] ?? null, - 'condition' => $now['text'] ?? 'Unknown', - 'wind_speed' => (float)$now['windSpeed'] ?? null, - 'wind_direction' => $now['windDir'] ?? null, - 'wind_direction_code' => (int)$now['wind_degree'] ?? null, - 'humidity' => (int)$now['humidity'] ?? null, - 'pressure' => (int)$now['pressure'] ?? null, - 'visibility' => (int)$now['vis'] ?? null, - 'dew_point' => (int)$now['dewPoint'] ?? null - ], - 'source' => '和风天气', - 'updated_at' => date('Y-m-d H:i:s') - ]; - } - } -} - -// 如果国内方案都失败,尝试方案3: wttr.in (备选) -if (!$result) { - $url3 = "https://wttr.in/" . urlencode($city) . "?format=j1&lang=" . ($lang === 'en' ? 'en' : 'zh-CN'); - - $ch3 = curl_init(); - curl_setopt($ch3, CURLOPT_URL, $url3); - curl_setopt($ch3, CURLOPT_RETURNTRANSFER, true); - curl_setopt($ch3, CURLOPT_TIMEOUT, 8); - curl_setopt($ch3, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) QuickAPI/1.0'); - curl_setopt($ch3, CURLOPT_SSL_VERIFYPEER, false); - curl_setopt($ch3, CURLOPT_SSL_VERIFYHOST, false); - - $response3 = curl_exec($ch3); - $http_code3 = curl_getinfo($ch3, CURLINFO_HTTP_CODE); - curl_close($ch3); - - if ($http_code3 == 200 && $response3) { - $data3 = json_decode($response3, true); - - if ($data3 && isset($data3['current_condition'])) { - $current = $data3['current_condition'][0]; - $desc = $current['desc'] ?? []; - - $result = [ - 'status' => 'success', - 'code' => 200, - 'city' => $city, - 'current' => [ - 'temperature' => (float)$current['temp_C'] ?? null, - 'temperature_f' => (float)$current['temp_F'] ?? null, - 'feels_like' => (float)$current['FeelsLikeC'] ?? null, - 'condition' => is_array($desc) ? ($desc[$lang === 'en' ? 'en' : 'zh-CN'] ?? $desc[0] ?? 'Unknown') : 'Unknown', - 'humidity' => (int)$current['humidity'] ?? null, - 'wind_speed' => (float)$current['windspeedKmph'] ?? null, - 'wind_speed_ms' => (float)$current['windspeedKmph'] / 3.6 ?? null, - 'wind_direction' => $current['winddir16Point'] ?? null, - 'pressure' => (int)$current['pressure'] ?? null, - 'precipitation' => (float)$current['precipMM'] ?? null, - 'visibility' => (float)$current['visibility'] ?? null, - 'uv_index' => (int)$current['uvIndex'] ?? null, - 'cloud_cover' => (int)$current['cloudcover'] ?? null - ], - 'source' => 'wttr.in', - 'updated_at' => date('Y-m-d H:i:s') - ]; - } - } -} - -// 返回结果 -if ($result) { - if ($type === 'xml' || $type === 'XML') { - header('Content-type: application/xml; charset=UTF-8'); - echo arrayToXml($result, null, null, 'weather'); - } else { - echo json_encode($result, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT); - } -} else { - http_response_code(500); - echo json_encode([ - 'status' => 'error', - 'code' => 500, - 'message' => $error ?? '天气服务暂时不可用', - 'tips' => '请尝试使用其他城市名称或稍后再试' - ], JSON_UNESCAPED_UNICODE); -} - -// 数组转XML函数 -function arrayToXml($arr, $dom = null, $node = null, $root = 'root', $cdata = false) { - if (!$dom) { - $dom = new DOMDocument('1.0', 'utf-8'); - } - if (!$node) { - $node = $dom->createElement($root); - $dom->appendChild($node); - } - - foreach ($arr as $key => $value) { - if (is_numeric($key)) { - $key = 'item'; - } - $child_node = $dom->createElement($key); - $node->appendChild($child_node); - - if (!is_array($value)) { - if (!$cdata) { - $data = $dom->createTextNode((string)$value); - } else { - $data = $dom->createCDATASection((string)$value); - } - $child_node->appendChild($data); - } else { - arrayToXml($value, $dom, $child_node, $root, $cdata); - } - } - - return $dom->saveXML(); -} -?> +file_put_contents($file, $counter, LOCK_EX); +header("Content-type: text/html; charset=UTF-8"); +if(!$_GET['msg'])exit("抱歉,出错了!\n请输入城市名!"); +$msg = $_GET['msg']; +$n = $_GET['n']; + $str = file_get_contents("compress.zlib://http://m.nmc.cn/f/rest/autocomplete?q=$msg&limit=10×tamp=1547115792491");//56691|威宁|553100|贵州省|weining|AGZ +$str=str_replace('|','
',$str); +$str = str_replace(PHP_EOL,'

', $str); +$str = "
".$str."
"; +$stre = '/
(.*?)
(.*?)
(.*?)
(.*?)
(.*?)
(.*?)
/'; +$result = preg_match_all($stre,$str,$trstr); +if($result== 0){ +echo "搜索不到与".$_GET["msg"]."的相关天气,请稍后重试或换个关键词试试。"; +}else{ +if($result== 1){ +$a=$trstr[1][0]; +$data = file_get_contents("compress.zlib://http://m.nmc.cn/f/rest/real/".$a.""); +preg_match_all('/"city":"(.*?)","province":"(.*?)"},"week":"(.*?)","moon":"(.*?)","jie_qi":"(.*?)","publish_time":"(.*?)","weather":{"temperature":(.*?),"temperatureDiff":(.*?),"airpressure":(.*?),"humidity":(.*?),"rain":(.*?),"rcomfort":(.*?),"icomfort":(.*?),"info":"(.*?)","img":"(.*?)","feelst":(.*?)},"wind":{"direct":"(.*?)","power":"(.*?)","speed":"(.*?)"},"warn":{"alert":"(.*?)","pic":"(.*?)","province":"(.*?)","city":"(.*?)","url":"(.*?)","issuecontent":"(.*?)"/',$data,$data);//1地名,2省,5节气,6更新时间,7现在温度,9气压,10湿度,12舒适度,14天气,16体感温度,17风向,18风力,19风速, +$a = $data[1][0]; //小地名 +$b = $data[2][0]; //省 +$s = $data[5][0]; //节气 +$c = $data[6][0]; //更新时间 +$d = $data[7][0]; //现在温度 +$e = $data[9][0]; //气压hPa, +$f = $data[10][0]; //湿度 +$g = $data[12][0]; //舒适度 +$h = $data[14][0]; //天气情况 +$i = $data[16][0]; //体感温度 +$q = $data[17][0]; //风向 +$w = $data[18][0]; //程度 +$r = $data[25][0]; //预警 +echo "".$a."[".$b."]\\n\\n天气:".$h." 舒适度:".$g."\\n时实温度:".$d."℃ 体感:".$i."℃\\n气压:".$e."hPa 湿度:".$f."%\\n风向:".$q." 程度:".$w.""; +if($r== 9999){}else{echo "\\n预警提示:$r";} +echo "\\n更新时间:".$c."\\n".$s.""; +}else{ +if($n== null){ +for( $i = 0 ; $i < $result && $i < 15 ; $i ++ ){ +$s=$trstr[2][$i];//小地名 +$c=$trstr[4][$i];//省 +echo ($i+1).":".$c."$s\n";} +echo "共搜索到与【".$_GET["msg"]."】的相关天气信息".$result."条!"; +}else{ +$n = $_GET['n']; +$i=($n-1); +$a=$trstr[1][$i];//id +$data = file_get_contents("compress.zlib://http://m.nmc.cn/f/rest/real/".$a.""); +preg_match_all('/"city":"(.*?)","province":"(.*?)"},"week":"(.*?)","moon":"(.*?)","jie_qi":"(.*?)","publish_time":"(.*?)","weather":{"temperature":(.*?),"temperatureDiff":(.*?),"airpressure":(.*?),"humidity":(.*?),"rain":(.*?),"rcomfort":(.*?),"icomfort":(.*?),"info":"(.*?)","img":"(.*?)","feelst":(.*?)},"wind":{"direct":"(.*?)","power":"(.*?)","speed":"(.*?)"},"warn":{"alert":"(.*?)","pic":"(.*?)","province":"(.*?)","city":"(.*?)","url":"(.*?)","issuecontent":"(.*?)"/',$data,$data);//1地名,2省,5节气,6更新时间,7现在温度,9气压,10湿度,12舒适度,14天气,16体感温度,17风向,18风力,19风速, +$a = $data[1][0]; //小地名 +$b = $data[2][0]; //省 +$s = $data[5][0]; //节气 +$c = $data[6][0]; //更新时间 +$d = $data[7][0]; //现在温度 +$e = $data[9][0]; //气压hPa, +$f = $data[10][0]; //湿度 +$g = $data[12][0]; //舒适度 +$h = $data[14][0]; //天气情况 +$i = $data[16][0]; //体感温度 +$q = $data[17][0]; //风向 +$w = $data[18][0]; //程度 +$s = $data[19][0]; //风速m/s +$r = $data[25][0]; //预警 +echo "".$a."[".$b."]\r\n\r\n天气:".$h." 舒适度:".$g."\r\n时实温度:".$d."℃ 体感:".$i."℃\r\n气压:".$e."hPa 湿度:".$f."%\r\n风向:".$q." 程度:".$w.""; +if($r== 9999){}else{echo "\r\n预警提示:$r";} +echo "\r\n更新时间:".$c."\r\n".$s."";}}} +?> \ No newline at end of file