Merhaba arkadaşlar,
Bugünkü makalemde bir fonksiyon paylaşıyorum. Fonksiyonu hazırlamam bugün üç saatimi aldı ne yazık ki. SEOmoz’un wiki’sinde yeterli dökümanı bulamadığım için bu üç saatimin çoğu araştırmakla geçti.. Şimdi SEOmoz’dan veri çekmek için hazırladığım bu fonksiyonu paylaşıyorum:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
<?php /** * seomoz() * @author oralunal * * @param mixed $url = İncelenmesini istediğiniz sitenin URL'si * @param mixed $accessID = Bunu http://togl.me/c adresinden temin ediyorsunuz * @param mixed $secretKey = Bunu da aynı adresten temin ediyorsunuz * @return */ function seomoz($url, $accessID, $secretKey){ $Expires = mktime() + 50; // Son kullanma tarihini ayarlayalım. Min. 50 isterseniz arttırabilirsiniz // Burada Signature elde etmek için işlemler yapıyoruz $imzaya = $accessID."n".$Expires; $binaryImza = hash_hmac('sha1', $imzaya, $secretKey, true); $imza = urlencode(base64_encode($binaryImza)); // Bu da veriyi çekeceğimiz URL $api_url = "http://lsapi.seomoz.com/linkscape/url-metrics/".$url."?AccessID=".$accessID."&Expires=".$Expires."&Signature=".$imza; $sonuc = @file_get_contents($api_url); // İçeriği alalım // Eğer boş dönerse veya hata alırsak başa dönelim while($sonuc == "NULL" || !$sonuc) seomoz($url, $accessID, $secretKey); // json_decode ile ile gelen veriyi dizilere atalım $sonuc = json_decode($sonuc, true); return $sonuc; } ?> |
Gözünüzü fazla korkutmasın arkadaşlar açıklama yarısından fazlası. Fonksiyon tamamı dokuz satırdır sadece. Şimdi bir de kullanımını gösterelim:
1 2 3 4 |
$json = seomoz("www.trkodlama.com/","member-xxxxxxx", "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"); echo "<pre>"; var_dump($json); echo "</pre>"; |
Bu şekilde çalıştırdığımızda ekran çıktısı aşağıdaki gibi olacaktır:
[sourcecode]array(13) {
["fmrp"]=>
float(3.0741889752691)
["fmrr"]=>
float(6.8230103124604E-10)
["pda"]=>
float(20.624589977163)
["ueid"]=>
int(30)
["ufq"]=>
string(18) "www.trkodlama.com/"
["uid"]=>
int(421)
["umrp"]=>
float(4.4399377088343)
["umrr"]=>
float(3.9712982973246E-10)
["upa"]=>
float(27.094229777475)
["upl"]=>
string(14) "trkodlama.com/"
["us"]=>
int(200)
["ut"]=>
string(43) "TR Kodlama – Güncel Programlama Makaleleri"
["uu"]=>
string(18) "www.trkodlama.com/"
}[/sourcecode]
Farkettiğiniz gibi başlık Türkçe karakter problemli. Bunun sebebi json_decode() fonksiyonunun ISO-8859-1 ile çalışmasıdır. Bunu da şu şekilde çözümleyebiliriz:
1 2 3 4 5 6 |
// Verimizi çekelim $json = seomoz("www.trkodlama.com/","member-xxxxxxx", "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"); // Şimdi başlığımızı çekelim $baslik_bozuk = $json["ut"]; // Ekran çıktısı: TR Kodlama - Güncel Programlama Makaleleri $baslik_okay = iconv("UTF-8", "ISO-8859-9", $baslik_bozuk); // Ekran çıktısı: TR Kodlama - Güncel Programlama Makaleleri |
Umarım açıklayıcı olmuştur arkadaşlar, işinize yaraması dileğiyle, kolay gelsin..
Yorumlar