Hakan ŞEN Kişisel Günce - Kategori : Programlama / http://www.hakansen.com

Ekim 24

XMLDOM ile RSS verilerini almak (Örnek: Haber7.com verilerini almak)

Yorumlar (0) Tarih : 24 Ekim 2007 Çarşamba Saat: 16:00:13
Kategoriler : Programlama
Etiketler : xmldom, xmlhttp, rss, okuma

xmlHTTP ile ilgili uzun süredir yazılar yazmaktayım ve bu konularla ilgili bir çok mail aldım, sanırım yazılar bazı arkadaşlarımız için iyi oluyor

Neyse şimdi de XMLDOM ile RSS dosyalarını nasıl kendi web sitemize alıp kullanacağımızı gösteren bir kod yığını yayınlayacağım inşAllah işinize yarar.

Bu örnekte haber7.com adresindeki haberleri nasıl alacağımızı anlatarak size sistemin nasıl oluşturulması gerektiğini anlatacağım.

Kod:


rssfile = "http://sondakika.haber7.com/sondakika.rss"

ile hangi adresten rss dosyasını çekeceğimizi bir belirleyelim.
Kod:


Dim objXML, objRoot, objItems

Set objXML = Server.CreateObject("Microsoft.XMLDOM")
objXML.Async = False
objXML.SetProperty "ServerHTTPRequest", True
objXML.ResolveExternals = True
objXML.ValiDateOnParse = True
objXML.Load(rssFile)

ile bağlantımızı oluşturalım.
Kod:


Set objItems = objRoot.getElementsByTagName("item")
If IsObject(objItems) = True Then
Dim objItem
For Each objItem In objItems

Döngümüzü oluşturalım ki <item> dizisinde bulunan veri başlıklarını sırayla alıp yayınlayalım,
Kod:


strTitle = objItem.SelectSingleNode("title").Text
strDesc = objItem.SelectSingleNode("description").Text
strLink = objItem.SelectSingleNode("link").Text
strDate = objItem.SelectSingleNode("pubDate").Text

ile de <item> içerisinde bulunan title, desc, link ve pubdate verilerini alalım.
Kod:


<a target="_blank" href="<%= strLink %>"><b><%= strTitle %></b></a> - <%=strDate%><br />
<%=strDesc%><br /><br />

ile verileri ekrana yazdırıyoruz.
Kod:


Next
Else
Response.Write "<b>Bilgiler Getirilemiyor</b>"
End If

Döngüyü tekrar başa alalım hata varsa ekranda gösterelim.
Kod:


Set objRoot = Nothing
Set objItems = Nothing
End If
Set objXML = Nothing

ve başlayan kodumuzu bitirelim.

İşte bu kadar rss okuyucu dosyamız hazır. Scriptin tüm dosyalarını http://www.hakansen.com/kod/haber7rss.asp.txt adresinde de görebilirsiniz.

Ekim 23

Sitenize döviz kuru ekleyin (JS)

Yorumlar (0) Tarih : 23 Ekim 2007 Salı Saat: 16:50:57
Kategoriler : Referanslar, Programlama
Etiketler : sitenize döviz kuru, js, döviz, kur

Sitemde daha önce Döviz Kurları ile ilgili hem ASP hemde PHP makaleleri yayınlamıştım.

Şimdi ise bir ziyaretçimdene gelen mesaj hostunun sadece HTML desteklediği yönünde olmuştur, ve kendisine nasıl yardımcı olacağımı sormuş, Bizde yardımcı olmak için elimizden geleni yapıyoruz ve Döviz kuru kodlarını veriyoruz .

Sitenizde döviz kurlarını göstermek istiyorsanız

Kod:


<script language="Javascript" src="http://www.hakansen.com/kod/dovizkuru.asp"></script>

Kodunu kurları göstermek isteğiniz yere yerleştirin, Döviz kurlarınız orada çıksın.

Hadi hayırlı olsun.

Ekim 22

PHP ile Merkez Bankası döviz kurları

Yorumlar (0) Tarih : 22 Ekim 2007 Pazartesi Saat: 14:45:26
Kategoriler : Programlama
Etiketler : php, döviz, kuru

Site iletişim formundan Doğan beyin gönderdiği bir mail ile daha önce yayınladığım döviz kuru sisteminin Php versiyonunun lazım olduğu haberini aldım ve kendisine yardımcı olmak adına gerekli kodları burada yayınlıyorum.

Söylemek isterim ki kodlar bana ait değil, Ben pek php bilmediğim için bunu arşivimde buldum, gerçek sahibini bilmediğim için kaynak gösteremiyorum ama bir çok yerde vardır sanırım bu kod.

Buyrun;

Kod:
<? 

$content = file_get_contents("http://www.tcmb.gov.tr/kurlar/toDay.xml");
$dolar_bul = explode('<Currency Kod="USD" CurrencyCode="USD">' ,$content);
$dolar_bul = explode('</ForexBuying>',$dolar_bul[1]);
$dolar_alis = explode('<ForexBuying>',$dolar_bul[0]);
$dolar_bul = explode('</ForexSelling>',$dolar_bul[1]);
$dolar_satis = explode('<ForexSelling>',$dolar_bul[0]);
$dolar_alis = $dolar_alis[1];
$dolar_satis = $dolar_satis[1];

$euro_bul = explode('<Currency Kod="EUR" CurrencyCode="EUR">' ,$content);
$euro_bul = explode('</ForexBuying>',$euro_bul[1]);
$euro_alis = explode('<ForexBuying>',$euro_bul[0]);
$euro_bul = explode('</ForexSelling>',$euro_bul[1]);
$euro_satis = explode('<ForexSelling>',$euro_bul[0]);
$euro_alis = $euro_alis[1];
$euro_satis = $euro_satis[1];
?>

Bu kodlar ile verileri aldık, bir tablo içerisinde gösterecek olursak
Kod:
<strong>T.C. Merkez Bankası Döviz Kuru </strong> 

<table width="100%" border="0" cellspacing="2" cellpadding="2">
<tr>
<td width="31%"> </td>
<td width="34%"><center>ALIŞ</center></td>
<td width="35%"><center>SATIŞ</center></td>
</tr>
<tr>
<td>USD dolar</td>
<td width="34%"><div align="Right"><?=$dolar_alis ?> YTL</div></td>
<td width="35%"><div align="Right"><?=$dolar_satis ?> YTL</div></td>
</tr>
<tr>
<td>EUR euro</td><td width="34%"><div align="Right"><?=$euro_alis ?> YTL
</div></td>
<td width="35%"><div align="Right"><?=$euro_satis ?>YTL</div></td>
</tr>
</table>

Ekim 18

XML Servislerinden Veri Almak

Yorumlar (1) Tarih : 18 Ekim 2007 Perşembe Saat: 13:50:29
Kategoriler : Programlama
Etiketler : xml, DOMDocument, msxml2, istatistik, veri almak

XML`in çeşitli kullanımları ile ilgili örnek yazılar yazmıştım, fakat bu sefer farklı bir yöntem izleyeceğiz msxml2.DOMDocument ile veri almak işlemini yapıcaz fakat biraz değişik bir yol ile.

Öncelikle uygulamayı kendi sitemde denemek için bir xml servisi oluşturdum. Bu serviste www.hakansen.com adresinde ki tüm yazı ve yorumların sayısını başka bir sitede nasıl gösterileceğini göstermek istedim.

www.hakansen.com/kod/stats.asp adresinden başlayalım.

Kod:
- <istatistik>

<ToplamKonu>145</ToplamKonu>
<ToplamYorum>142</ToplamYorum>
</istatistik>


şeklinde bir servis oluşturdum içerisindeki veriler veritabanındakilere göre otomatik olarak değişiyor.

Peki bunu başka bir sitede nasıl alıp kullanabilirim.

Bunun için ise verileri alma fonksiyonumuzu hazırlayalım.

Kod:
Function GetStats(Veri,url)

     Set xObj=Server.CreateObject("msxml2.DOMDocument")
     xobj.async=False
     xobj.setProperty "ServerHTTPRequest",True
     xobj.load(url)
     
     If (xObj.parseError.errorCode <> 0) Then
         GetStats = xObj.parseError.reason
     Else
         Set sonuc=xobj.getElementsByTagName("istatistik")
         GetStats = (sonuc.Item(0).childnodes.Item(Veri).text)
     End If
End Function

şeklinde fonksiyonumuzu belirledik, Bu fonksiyonu biraz açıklamak gerekirse.

GetStats fonksiyonunu tanımlarken Url kısmına çekilecek verinin adresini belirtiyoruz.
Veri kısmına ise <istatistik> alt dizisinde bulunan verilerin sırasını giriyoruz bu sıra aynı Array nesnesi gibi 0,1,2,3,4... şeklinde gidecek yani 0 dan başlayacak.

Buraya kadar anlaşıldıysa uygulamaya da geçelim
Kod:
www.hakansen.com sitesinde şuan itibariyle Toplam <b><%=GetStats(0,"http://www.hakansen.com/kod/stats.asp")%> Konu</b> ve <b><%=GetStats(1,"http://www.hakansen.com/kod/stats.asp")%> Yorum</b> bulunmaktadır.


yazdığınız zaman
www.hakansen.com sitesinde şuan itibariyle Toplam 145 Konu ve 142 Yorum bulunmaktadır.
şeklinde bir cevap ile karşılaşacaksınız ve xmldeki verileri almış olacaksınız.

Ağustos 7

xmlHTTP ile Merkez Bankası Döviz Kurları (Ayrıntılı Açıklama)

Yorumlar (0) Tarih : 7 Ağustos 2007 Salı Saat: 20:52:07
Kategoriler : Makale, Programlama
Etiketler : asp, xmlhttp, merkez bankası, kurları, instr, mid, fonksiyon

Bilindiği gibi xmlHTTP`yi başka sitelerden veri çekmek için kullanıyoruz. xmlHTTP ile ilgili diğer yazılarım için http://www.hakansen.com/etiket/xmlhttp/ adresinden diğer konulara göz gezdirebilirsiniz.

Bu yazıda http://www.tcmb.gov.tr/kurlar/today.html adresinden Merkez Bankası döviz kurlarını anlık olarak nasıl alınır mantığı nedir ne değildir onu göstermeye çalışacağım.

Öncelikle Fonksiyonumuzu kurarak başlayalım.

Kod:
Public Function GETHTTP(strGelen) 

Set objVeriAl = Server.CreateObject("Microsoft.XMLHTTP" )
objVeriAl.Open "GET" , strGelen, False
objVeriAl.sEnd
GETHTTP= objVeriAl.Responsetext
Set objVeriAl = Nothing
End Function


Bu her zaman kullandığımız xmlhttp ile get metodu ile veri çekmek için kullanacağımız koddur.

şimdi devam edelim ve http://www.tcmb.gov.tr/kurlar/today.html adresine bağlanalım.
Kod:
strURL = "http://www.tcmb.gov.tr/kurlar/toDay.html" 

strVeri = GETHTTP(strAdres)

Siteye bağlandık ve responsetext olarak kaynağını aldık.

Şimdi sıra geldi USD yani dolar kurunu bu kodların içerisinden nasıl alırız onu öğrenmeye. Bu işlemi yapabilmek için inStr() ve Mid() fonksiyonlarını kullanacağız.

Kod:
iDolar=InStr(strVeri,"USD" ) 

strDolarAlis=Mid(strVeri,iDolar+39,10)
strDolarSatis=Mid(strVeri,iDolar+52,10)


InStr() fonksiyonu ile aldığımız kaynak kodunda USD yazan yerin karakter sırasını alıyoruz ve Mid() fonksiyonuyla koddaki karakterler arasında kurların yazdığı bölümü alıyoruz.

Kod:
strDolarAlis=Mid(strVeri,iDolar+39,10)

kodunda kaynak kodunun USD geçen yerinden 39 karakter sonrasindan başlayarak 10 karakter sonrasina kadar geçen bölümü alıyoruz, bu bölüm Merkez Bankası Dolar Alış kurunu almış oluyoruz.

Aynı şekilde EUR değerlerini de almak için

Kod:
iEuro=InStr(strVeri,"EUR" ) 

strEuroAlis=Mid(strVeri,iEuro+39,11)
strEuroSatis=Mid(strVeri,iEuro+52,11)



Böylelikle tüm verileri almış oluyoruz, bunları sitede kullanmak istediğimiz yerlerde

Kod:
Response.Write "Dolar Satış : "& strdolarsatis &"<br>"

Response.Write "Dolar Alış : "& strDolarAlis &"<br>"
Response.Write "Euro Satış : "& strEuroSatis &"<br>"
Response.Write "Euro Alış : "& strEuroAlis &"<br>"


şeklinde istediğiniz yerde kullanabilirsiniz.

Kodun komple çalışan versiyonuna http://www.hakansen.com/Kod/doviz.kurlari.txt adresinden ulaşabilirsiniz.


eXTReMe Tracker