PHP天气查询实例代码_PHP教程
教程Tag:暂无Tag,欢迎添加,赚取U币!
推荐:PHP技巧:PHP中密码加密函数function ChangeMsg(msgu,msgp) { if(msgu!= msgp!=) { delmsg = md5(msgu); rname = substr(delmsg,5,1).,.substr(delmsg,7,1).,.substr(delmsg,15,1).,.substr(delmsg,17,1); rnamearray = explode(',',rname); rpass = md5(msgp); r_msg = str_
- <?php
- city_name=_GET['city'];
- //用正则在city.txt中查找相应城市的天气城市代码
- city_name=trim(ereg_replace("[ ]{1,}","",city_name));
- time_file="city.txt";
- city_all=file_get_contents(time_file);
- preg="|city_name,(.*)\s|i";
- preg_match_all(preg,city_all,cn, PREG_SET_ORDER);
- city_n=trim(cn[0][1]);
- if(city_n)
- {
- nowtime=date("Y-m-d");
- file = "cache/city_name.txt";
- //获取文件的最后修改日期
- if(file_exists(file))
- {
- last_time=date("Y-m-d",filemtime(file));
- }
- else{
- last_time=date("Y-m-d");
- }
- //新建保存匹配数组
- records=null;
- //如果文件存在,或还没过期,则直接读取缓存数据
- if (file_exists(file) && last_time==nowtime)
- {
- records = unserialize(file_get_contents(file));
- }
- else
- {
- //以下就是如何在网站上 获取天气资料,,小偷部分!感觉其中的preg_match_all功能很强大
- data=file_get_contents("http://weather.msn.com/local.aspx?wealocations=wc:city_n");
- preg="|<td class=\"icon\"><img src=\"(.*)\" width=.*class=\"hilo\"><tr><th>Hi:<\/th> <td>(.*)°<\/td><\/tr><tr><th>L<\/th> <td>(.*)°<\/td><\/tr><\/table>.*class=\"skytext\" colspan=\"3\">(.*)<\/td>|U";
- preg_match_all(preg,data,records);
- unset (records[0][0]);
- //序列化组
- OUTPUT = serialize(records);
- //打开文件,
- fp = fopen(file,"w");
- //把数组写进文件
- fputs(fp, OUTPUT);
- //关闭
- fclose(fp);
- }
- image=records[1][0];
- resulta=records[2][0];
- resultb=records[3][0];
- resultc=records[4][0];
- reString="<table width=\"100%\">
- <tr bgcolor=\"#cccccc\">
- <td width=\"50%\"><font size=\"4\">city_name</font></td>
- <td width=\"50%\"><div align=\"right\"><font size=\"3\">nowtime</div></font></td>
- </tr>
- <tr>
- <td rowspan=\"2\"><img src='".image."' \/></td>
- <td><font size=\"3\">".resulta."-".resultb."(F)</fong></td>
- </tr>
- <tr>
- <td colspan=\"2\"><font size=\"3\">".resultc."</fong></td>
- </tr>
- </table>";
- }
- else
- {
- reString="<table width=\"100%\">
- <tr bgcolor=\"#cccccc\">
- <td width=\"50%\"><font size=\"4\">The city: city_name hasn`t been found!</font></td>
- </tr>
- </table>";
- }
- echo iconv("gb2312","utf-8",reString);
- ?>
主要是把当天的做个缓存,这样第2次访问同一城市的时候的话就比较快了。虽然不是什么好代码,但是对与刚刚学习PHP的人还是一个蛮好的例子,特别是里面的正则表达式的应用。
前编主要是处理 部分,也就是天气查询的核心部分,现在是AJAX中的部分 代码如下:
- var xmlHttp;
- function createXMLHttpRequest()
- {
- var xmlHttpRequest;
- if(window.ActiveXObject)
- {
- xmlHttpRequest=new ActiveXObject("Microsoft.XMLHTTP");
- return xmlHttpRequest;
- }
- else if(window.XMLHttpRequest)
- {
- xmlHttpRequest=new XMLHttpRequest();
- return xmlHttpRequest;
- }
- }
- function startXmlHttpRequest()
- {
- var form=document.getElementById("city");
- var city=form.value;
- var cityName=form.Text;
- xmlHttp=createXMLHttpRequest();
- xmlHttp.open("GET","weather/getHtml.php?city="+city+"&cityname="+cityName+"&time="+new Date(),true);
- xmlHttp.onreadystatechange=returnText;
- xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
- xmlHttp.send(null);
- }
- function startTextXmlHttpRequest()
- {
- var form=document.getElementById("textcity");
- var city=form.value;
- xmlHttp=createXMLHttpRequest();
- xmlHttp.open("GET","weather/textGetHtml.php?city="+city,true);
- xmlHttp.onreadystatechange=returnText;
- xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
- xmlHttp.send(null);
- }
- function validataIpAdd()
- {
- }
- function returnText()
- {
- var div=document.getElementById("result_box");
- var loading=document.getElementById("loading");
- div.innerHTML="";
- loading.style.display="block";
- if(xmlHttp.readyState==1)
- {
- }
- else if(xmlHttp.readyState==4)
- {
- if(xmlHttp.status==200)
- {
- div.innerHTML=xmlHttp.responseText;
- loading.style.display="none";
- }
- }
- }
主要比较简单! 由4个函数组成 1个是创建 1个是提交 一个是返回 顶部的是是判断浏览器然后创建XMLHTMLREQUES
分享:PHP 验证码 详细代码带注释 推荐!checkcode.php 生成验证码图片,还有变量 $_SESSION[check_pic]。 ? session_start(); for ( $i =0; $i 4; $i ++){ $rand .= dechex (rand(1,15)); } $_SESSION [check_pic]= $rand ; //echo$_SESSION[check_pic]; //设置图片大小 $im =imagecreatetruecolor(100,30);
相关PHP教程:
- 相关链接:
- 教程说明:
PHP教程-PHP天气查询实例代码。