天气预报信息采集自中央气象台,信息准确,覆盖面广,代码简单。返回是json代码,可以用于客户端调用,也可以在服务器端处理后显示,笔者的wordpress天气预报插件就是使用的这段代码哦。需要注意的是,这段代码会在服务器产生缓存文件,需要在当前目录中新建data文件夹,保证文件夹可写。转载注明出处!

if(!isset($_GET['q'])){

//根据IP查询所在地

$p = file_get_contents("http://lab.cnphp.info/ip/?q={$_SERVER['HTTP_X_FORWARDED_FOR']}");

}

else{

$p = $_GET['q'];

}

$k = 0;

$encoding = mb_detect_encoding($p);

if($encoding != "UTF-8"){

$p = mb_convert_encoding($p,"utf-8","gbk");

}

$p_arr = array(

"01" => "北京",

"02" => "上海",

"03" => "天津",

"04" => "重庆",

"05" => "黑龙江",

"06" => "吉林",

"07" => "辽宁",

"08" => "内蒙古",

"09" => "河北",

"10" => "山西",

"11" => "陕西",

"12" => "山东",

"13" => "新疆",

"14" => "西藏",

"15" => "青海",

"16" => "甘肃",

"17" => "宁夏",

"18" => "河南",

"19" => "江苏",

"20" => "湖北",

"21" => "浙江",

"22" => "安徽",

"23" => "福建",

"24" => "江西",

"25" => "湖南",

"26" => "贵州",

"27" => "四川",

"28" => "广东",

"29" => "云南",

"30" => "广西",

"31" => "海南",

"32" => "香港",

"33" => "澳门",

"34" => "台湾"

);

function find(&$item,$key,$data){

global $k;

if(preg_match("/$item/u",$data)){

$k = $key;

}

}

function get_data_arr($key){

if(!file_exists("./data/city{$key}.xml")){

$c =file_get_contents( "http://m.weather.com.cn/data5/city{$key}.xml" );

file_put_contents("./data/city{$key}.xml",$c);

}

else{

$c = file_get_contents("./data/city{$key}.xml");

}

$arr = explode(",",$c);

foreach($arr as $v){

$data = explode("|",$v);

$ret[$data[0]] = $data[1];

}

return $ret;

}

array_walk($p_arr,'find',$p);

array_walk(get_data_arr($k),'find',$p);

array_walk(get_data_arr($k),'find',$p);

$ccode = get_data_arr($k);

echo file_get_contents("http://m.weather.com.cn/data/{$ccode[$k]}.html");

?>

php天气源码_php 天气预报代码相关推荐

  1. php天气源码_PHP获取城市天气API接口源码

    PHP获取城市天气API接口源码,接口调用的是微鲤的接口,2020年9月1日 10:11:07测试接口还可以正常使用. API查询接口代码<?php function tian(){ $city ...

  2. 程序实现php文件上传,PHP实例:实现文件上传的程序源码_php

    以下为引用的内容: 文件上传界面 http://www.gaodaima.com/48380.htmlphp实例:实现文件上传的程序源码_php if($UploadAction){ $UploadA ...

  3. Java源码 JavaWeb开发框架 代码 SSH SSM OA ERP CRM Java项目[Java通用框架源码及开发视频教程]

    Java源码 JavaWeb开发框架 代码 SSH SSM OA ERP CRM Java项目 功能简介: A.代码生成器(开发利器) 生成Java各层次的类和JSP等文件,提高开发效率 B.阿里巴巴 ...

  4. 探究菊花文的“密码”(文中转换器源码仅一行代码哦)

    菊花文.方框文,看起来很神奇的样子.其实,也就是在字符串中插入了特殊字符,利用特殊字符的显示特性获得的混合显示效果而已.(文中转换器源码仅一行代码哦

  5. XCounter (源码统计工具 /代码统计工具)

    XCounter (源码统计工具/代码统计工具) 支持统计语言: c语言.c++语言.c#语言.java语言和python语言 (后期版本将会加入其它相关语言) 目录 XCounter (源码统计工具 ...

  6. PHP+MySql的网络验证源码开源纯代码可二次开发

    PHP+MySql的网络验证源码开源纯代码可二次开发 :99415656994962582靓仔担当有决心

  7. spring初始化源码浅析之代码浅析

    目录 1.refresh()简介 2.关键代码跟踪 ​2.1.obtainFreshBeanFactory()代码分析 2.2.invokeBeanFactoryPostProcessors(bean ...

  8. 源码交付低代码平台,让软件自主可控成为可能

    编者按:谷歌.微软等美国高科技企业接连宣布断供俄罗斯的行为掀起新的软件自主可控话题热潮,自主可控是什么意思?企业如何对自己使用的软件做到自主可控?本文将探讨软件的自主可控的相关问题,并介绍了一款提供源 ...

  9. sm4算法(附源码、测试代码)

    from:http://blog.csdn.net/mao0514/article/details/52930944 SM4是我们自己国家的一个分组密码算法,是国家密码管理局于2012年发布的.网址戳 ...

最新文章

  1. 【网络协议】TCP分段与IP分片
  2. 【唠叨两句】如何将一张树型结构的Excel表格中的数据导入到多张数据库表中...
  3. 一文读懂Faster R-CNN目标检测
  4. 【Android 安装包优化】使用 lib7zr.so 动态库处理压缩文件 ( 修改 7zr 交叉编译脚本 Android.mk | 交叉编译 lib7zr.so 动态库 )
  5. 设置QtreeWidget水平滚动条
  6. 11g java 驱动_Oracle 11g Java驱动包ojdbc6.jar安装到maven库,并查看jar具体版本号
  7. 3.0 面向对象 委托和事件 异常和错误
  8. 2021华为软件精英挑战赛总结
  9. Linux后台运行程序最实用的两种方式
  10. ir2104作用,ir2104引脚功能和IR2103 请问有没有人可以通俗地讲解IR2104芯片引脚的功能?...
  11. python 安卓平板摄像头_python把手机摄像头当作电脑摄像头
  12. NOJ——[1176] Exchange Rate
  13. 搭建Longhorn
  14. 机器学习笔记(四)聚类
  15. ABAP:增强篇-MIGO过账增强之CHECK方法获取行项目
  16. 大学linux操作系统,大学信息技术(Linux操作系统及其应用)
  17. 山水印|竹林野茶:秋季排湿,喝茶最好!
  18. 在Excel中使用SQL语言
  19. python3.7-初学篇-07
  20. HTML 视频播放代码

热门文章

  1. Android 获取通话记录、联系人
  2. 无人机倾斜摄影图像地理配准-随笔
  3. 微软逆天啦,开发出自动揪 Bug 神器
  4. mysql查询id_Mysql基本查询语句及方法
  5. 基于微服务下的持续交付环境
  6. Visual Assist X下载与安装
  7. 如何实现下拉选择省份后,后续单元格能选择对应的城市和县区
  8. 吸烟的烟民注意了:国家有大动作
  9. VB开发CAD——AutoCAD切成中望CAD
  10. Java初学者常用的基础问题及答案汇总(快收藏)