国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發(fā) > PHP > 正文

PHP天氣查詢實(shí)例代碼

2024-05-04 21:52:50
字體:
供稿:網(wǎng)友
  1. <?php 
  2. city_name=_GET['city']; 
  3. //用正則在city.txt中查找相應(yīng)城市的天氣城市代碼 
  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. //新建保存匹配數(shù)組 
  20. records=null
  21.  
  22. //如果文件存在,或還沒過期,則直接讀取緩存數(shù)據(jù) 
  23. if (file_exists(file) && last_time==nowtime) 
  24. {  
  25. records = unserialize(file_get_contents(file)); 
  26. else 
  27. //以下就是如何在網(wǎng)站上 獲取天氣資料,,小偷部分!感覺其中的preg_match_all功能很強(qiáng)大 
  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. //把數(shù)組寫進(jìn)文件 
  37. fputs(fp, OUTPUT);  
  38. //關(guān)閉 
  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. ?> 

主要是把當(dāng)天的做個(gè)緩存,這樣第2次訪問同一城市的時(shí)候的話就比較快了。雖然不是什么好代碼,但是對(duì)與剛剛學(xué)習(xí)PHP的人還是一個(gè)蠻好的例子,特別是里面的正則表達(dá)式的應(yīng)用。

前編主要是處理 部分,也就是天氣查詢的核心部分,現(xiàn)在是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"

主要比較簡(jiǎn)單! 由4個(gè)函數(shù)組成 1個(gè)是創(chuàng)建 1個(gè)是提交 一個(gè)是返回 頂部的是是判斷瀏覽器然后創(chuàng)建XMLHTMLREQUES

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 平远县| 资溪县| 苗栗县| 乌审旗| 宝丰县| 甘孜| 昆明市| 盐城市| 扶沟县| 东兰县| 岑巩县| 乌兰县| 达拉特旗| 临沂市| 如东县| 班玛县| 怀化市| 平阳县| 江孜县| 社旗县| 乌拉特后旗| 汉寿县| 巴林右旗| 彩票| 海阳市| 广饶县| 嘉定区| 宁阳县| 庆安县| 获嘉县| 德保县| 含山县| 木兰县| 大宁县| 南投市| 敦化市| 苏尼特左旗| 永安市| 平和县| 彝良县| 慈利县|