Merhaba,
Buradan yıllar önce bir site için yapmuş olduğum ASP kodlarını paylaşmak istiyorum.
Bu kodlar sayesinde weather.com hava verilerini kendi sitenizde yayınlayabilirsiniz.
hava.asp olarak bir asp dosyası açalım ve aşağıdaki kodları kullanalım.
<%@ Language=VBScript ‘ başlıyoruz.
Response.ContentType = “text/html”
Response.CharSet = “ISO-8859-9″ ’sayfa dilini türkçe olarak girdik.Dim XmlHTTP, SourceFile, objDOM, objChild, I ’ değişkenler
SourceFile = “http://xoap.weather.com/weather/local/TUXX0014?cc=*&dayf=1∏=xoap&par=1007017884&key=8fa5357d76181c74″ ‘Buradaki bilgileri (key, url, local code) weather.com dan alabiliyorsunuz.
Set XmlHTTP = Server.CreateObject(“MSXML2.ServerXMLHTTP” ) ‘MSXML2 Object’inin serverinizde kurulu olması gerekiyor.
XmlHTTP.Open “GET” , SourceFile, false
XmlHTTP.SEndSet objDOM = Server.CreateObject(“Msxml2.DomDocument.3.0″ )
objDOM.async = False
objDOM.loadXML(XmlHTTP.ResponseText)
If objDOM.parseError.errorCode = 0 Then
hatali = “huyt” ‘Buradaki hata mesajını istediğiniz gibi değiştirin.dim xmlNode
UpTime = objDOM.documentElement.selectSingleNode(“cc/lsup” ).Text
tmp = objDOM.documentElement.selectSingleNode(“cc/tmp” ).Text
flik = objDOM.documentElement.selectSingleNode(“cc/flik” ).Text
t = objDOM.documentElement.selectSingleNode(“cc/t” ).Text
icon = objDOM.documentElement.selectSingleNode(“cc/icon” ).Text
winds = objDOM.documentElement.selectSingleNode(“cc/wind/s” ).Text
windd = objDOM.documentElement.selectSingleNode(“cc/wind/t” ).Text
hmid = objDOM.documentElement.selectSingleNode(“cc/hmid” ).Text
vis = objDOM.documentElement.selectSingleNode(“cc/vis” ).Text
uvi = objDOM.documentElement.selectSingleNode(“cc/uv/i” ).Text
uvt = objDOM.documentElement.selectSingleNode(“cc/uv/t” ).Text
dewp = objDOM.documentElement.selectSingleNode(“cc/dewp” ).Text
durumen = Request.QueryString(“durumen” ) ‘QueryStringte drumen eğer boşsa ingilizce icon, değilse ona göre icon belirleriz.
If durumen <> “” Then
icon = durumen
Else
Select Case icon’Bundan sonrası Caseler, bunlar çok önemli, durumların rakamsal karşılıklarını ben tek tek çıkardım ve karşılıklarını yazdım. Mesela 11 ve 45 numaralı durumlar yagmurlu, duruma göre türkçe veya ingilice yazılacak. Devam…
Case “11″ ,“45″
durumen = “Rainy”
durumtr=“Yağmurlu”Case “30″ ,“44″
durumen = “Clouds”
durumtr=“Parçalý Bulutlu”Case “27″ ,“28″
durumen = “Cloudy”
durumtr=“Parçalý Bulutlu”Case “23″ ,“24″ ,“31″ ,“33″
durumtr=“Açýk”
durumen = “Clear”Case “13″ ,“14″ ,“15″ ,“16″ ,“25″ ,“41″ ,“42″ ,“43″ ,“46″
durumtr=“Karlý”
durumen = “Snow”Case “5″ ,“7″ ,“8″ ,“10″
durumtr=“Sulu Kar”
durumen = “Sleet”Case “6″ ,“18″
durumtr=“Tipi”
durumen = “Blizzard”Case “0″ ,“1″ ,“2″ ,“3″ ,“4″ ,“12″ ,“17″ ,“35″ ,“37″ ,“38″ ,“39″,“40″ ,“47″
durumtr=“Saðnak Yaðmur”
durumen = “RainShower”Case “36″ ,“32″
durumtr=“Güneþli”
durumen = “Sunny”Case “9″ ,“19″ ,“20″ ,“21″ ,“22″ ,“34″ ,“29″
durumtr=“Sisli”
durumen = “fogy”Case “26″
durumtr=“Bulutlu”
durumen = “Cloudy”Case Else
durumtr=“N/A”
durumen = “N/A”
End Select
End If‘Aşağıdaki kodlar zamanla ilgili olarak gece veya gündüz hallerini bildiren kodlardır. Mevsimlere göre değiştirebilirsiniz. yazın 21:00 dan sonra gece yapabilirsiniz.
zaman = Request.QueryString(“zaman” )
If zaman = “gece” Then
backgroundimage = “alts2″
ElseIf zaman = “gunduz” Then
backgroundimage = “alts”
Else
Select Case Hour(Now)
Case 5,6,7,8,9,10,11,12,13,14,15,16,17
backgroundimage = “alts”
Case 18,19,20,21,22,23
backgroundimage = “alts2″
Case Else
backgroundimage = “alts2″
End Select
End If
Else
hatali = “hayt”
End If
Set objDOM = Nothing
Set Source = Nothing
Set XMLHttp = Nothing%>
Şimdide hava durumunun görüneceği sayfayı havadurumu.asp olarak oluşturuyorum ben
<HTML>
<!–#include file=”hava.asp”–>
<HEAD>
<TITLE>HAVA DURUMU</TITLE>
<META HTTP-EQUIV=”Content-Type” CONTENT=”text/html; charset=iso-8859-9″>
</HEAD>
<BODY>
<strong>MASLAK’TA HAVA<br>
<%= durumtr ‘buradan durumu türkçe olarak seçtik, istersek durumen diyerek ingilizcesini seçebilirdik. %> <br>
<%
‘ Fahrenayt’tan °C’a ceviren Kodlama yapmamız gerek çünkü hava durumunu çektiğimiz weather.com sıcaklık değerini Fahrenayt olarak göstermektedir.
yahoo = Replace(tmp,“°F” ,“” ,1, -1, 1)
function converti(dblTempF)
converti = (5/9) * ( dblTempF -32 )
End functiondim dblGradIf
dblGradIf = yahoo
tehoo=Left(converti(yahoo),4)
sciakluks = tehoo & “°C”
Response.Write sciakluks ’sicaklığı yazzzzzz!!!! %><table width=”100%” border=”0″ cellspacing=”0″ cellpadding=”0″>
<tr>
<td colspan=”3″ align=”right”><span><img src=”images/dot.gif” width=”10″ height=”1″> </span></td>
</tr><tr>
<td height=”10″ align=”right”><B>Durum :</b></td>
<td height=”10″ align=”left”> <%=durumtr ‘durumu yazzzz%></td>
<td height=”10″ align=”center” valign=”top”> </td>
</tr>
<tr>
<td height=”10″ align=”right”><%
teng = Replace(vis,” Mi” ,“” ,1,-1,1) ‘görüş netliğini millden metreye çevirmeliyiz
komg = teng*1.850 %>
<B>Görüş Netliği :</b> </td>
<td height=”10″ align=”left”> <%= komg & ” m”%></td>
<td height=”10″ align=”center” valign=”top”> </td>
</tr>
<tr>
<td height=”10″ align=”right”><B>Hissedilen Sıcaklık :</b> </td>
<td align=”left”> <%=sciakluks %></td>
<td height=”10″ align=”center” valign=”top”> </td>
</tr>
<tr>
<td height=”10″ align=”right”><B>Nem Oranı :</b> </td>
<td height=”10″ align=”left”> <%= hmid ‘nem oranını yazz%></td>
<td height=”10″ align=”center” valign=”top”> </td>
</tr>
<tr>
<td height=”10″ align=”right”><%=“<B>Rüzgâr :</b> ” %></td>
<td height=”10″ align=”left”> <%
yekes = Replace(winds,” MPH” ,“”,1, -1, 1) ‘Rüzgar hızını mil değerinden KmH’a çevirmeliyiz
Response.Write windd & ” ” & winds & ” KmPH” %></td>
<td height=”10″ align=”center” valign=”top”> </td>
</tr>
</table><%
Set objDOM = Nothing
Set Source = Nothing
Set XMLHttp = Nothing‘Object’lerimizi kapattik
)
%>
Evet bu kadar.
Umarım yararlı olmuştur. Uzun süre önce yazdığım için (Weather.com daki değişimlerin durumunu bilmiyorum) şu an çalışıp çalışmadığını bile bilmiyorum. Ama yeni geliştirelecek kodlar için arkadaşlara fikir olabilir diye paylaşıyorum.
Not: Bu kodlar 02 Mart 2006 tarihinde http://forum.maxiasp.com/soru.asp?is=oku&sno=6563 adresinden tarafımca yayınlanmıştır.
Kolay Gelsin
)