PHP天气查询实例代码_PHP教程

编辑Tag赚U币
教程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_

  1. <?php 
  2. city_name=_GET['city']; 
  3. //用正则在city.txt中查找相应城市的天气城市代码 
  4. city_name=trim(ereg_replace("[ ]{1,}","",city_name)); 
  5. time_file="city.txt"
  6. city_all=file_get_contents(time_file); 
  7. preg="|city_name,(.*)\s|i"
  8. preg_match_all(preg,city_all,cn, PREG_SET_ORDER); 
  9. city_n=trim(cn[0][1]); 
  10.  
  11. if(city_n) 
  12. nowtime=date("Y-m-d"); 
  13. file = "cache/city_name.txt"
  14. //获取文件的最后修改日期 
  15. if(file_exists(file)) 
  16. last_time=date("Y-m-d",filemtime(file)); 
  17. else{ 
  18. last_time=date("Y-m-d"); 
  19. //新建保存匹配数组 
  20. records=null
  21.  
  22. //如果文件存在,或还没过期,则直接读取缓存数据 
  23. if (file_exists(file) && last_time==nowtime) 
  24. {  
  25. records = unserialize(file_get_contents(file)); 
  26. else 
  27. //以下就是如何在网站上 获取天气资料,,小偷部分!感觉其中的preg_match_all功能很强大 
  28. data=file_get_contents("http://weather.msn.com/local.aspx?wealocations=wc:city_n"); 
  29. preg="|<td class=\"icon\"><img src=\"(.*)\" width=.*class=\"hilo\"><tr><th>Hi:<\/th> <td>(.*)&#176;<\/td><\/tr><tr><th>L<\/th> <td>(.*)&#176;<\/td><\/tr><\/table>.*class=\"skytext\" colspan=\"3\">(.*)<\/td>|U"; 
  30. preg_match_all(preg,data,records); 
  31. unset (records[0][0]); 
  32. //序列化组 
  33. OUTPUT = serialize(records);  
  34. //打开文件, 
  35. fp = fopen(file,"w");  
  36. //把数组写进文件 
  37. fputs(fp, OUTPUT);  
  38. //关闭 
  39. fclose(fp);  
  40. image=records[1][0]; 
  41. resulta=records[2][0]; 
  42. resultb=records[3][0]; 
  43. resultc=records[4][0]; 
  44. reString="<table width=\"100%\"> 
  45. <tr bgcolor=\"#cccccc\"> 
  46. <td width=\"50%\"><font size=\"4\">city_name</font></td> 
  47. <td width=\"50%\"><div align=\"right\"><font size=\"3\">nowtime</div></font></td> 
  48. </tr> 
  49. <tr> 
  50. <td rowspan=\"2\"><img src='".image."' \/></td> 
  51. <td><font size=\"3\">".resulta."-".resultb."(F)</fong></td> 
  52. </tr> 
  53. <tr> 
  54. <td colspan=\"2\"><font size=\"3\">".resultc."</fong></td> 
  55. </tr> 
  56. </table>"; 
  57. else 
  58. reString="<table width=\"100%\"> 
  59. <tr bgcolor=\"#cccccc\"> 
  60. <td width=\"50%\"><font size=\"4\">The city: city_name hasn`t been found!</font></td> 
  61. </tr> 
  62. </table>"; 
  63. echo iconv("gb2312","utf-8",reString); 
  64. ?> 

主要是把当天的做个缓存,这样第2次访问同一城市的时候的话就比较快了。虽然不是什么好代码,但是对与刚刚学习PHP的人还是一个蛮好的例子,特别是里面的正则表达式的应用。

前编主要是处理 部分,也就是天气查询的核心部分,现在是AJAX中的部分 代码如下:

  1. var xmlHttp; 
  2. function createXMLHttpRequest() 
  3. var xmlHttpRequest; 
  4. if(window.ActiveXObject) 
  5. xmlHttpRequest=new ActiveXObject("Microsoft.XMLHTTP"); 
  6. return xmlHttpRequest; 
  7. else if(window.XMLHttpRequest) 
  8. xmlHttpRequest=new XMLHttpRequest(); 
  9. return xmlHttpRequest; 
  10. function startXmlHttpRequest() 
  11. var form=document.getElementById("city"); 
  12. var city=form.value; 
  13. var cityName=form.Text; 
  14. xmlHttp=createXMLHttpRequest(); 
  15. xmlHttp.open("GET","weather/getHtml.php?city="+city+"&cityname="+cityName+"&time="+new Date(),true); 
  16. xmlHttp.onreadystatechange=returnText
  17. xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded"); 
  18. xmlHttp.send(null); 
  19. function startTextXmlHttpRequest() 
  20. var form=document.getElementById("textcity"); 
  21. var city=form.value; 
  22. xmlHttp=createXMLHttpRequest(); 
  23. xmlHttp.open("GET","weather/textGetHtml.php?city="+city,true); 
  24. xmlHttp.onreadystatechange=returnText
  25. xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded"); 
  26. xmlHttp.send(null); 
  27. function validataIpAdd() 
  28. function returnText() 
  29. var div=document.getElementById("result_box"); 
  30. var loading=document.getElementById("loading"); 
  31. div.innerHTML=""
  32. loading.style.display="block"
  33. if(xmlHttp.readyState==1) 
  34. else if(xmlHttp.readyState==4) 
  35. if(xmlHttp.status==200) 
  36. div.innerHTML=xmlHttp.responseText; 
  37. 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教程/更新时间:2012-06-10
相关PHP教程