Seomoz Api’Sini Kullanarak Bilgi Çeken Fonksiyon
Merhaba arkadaşlar,
Bugünkü makalemde bir fonksiyon paylaşıyorum. Şimdi SEOmoz’dan veri çekmek için hazırladığım bu fonksiyonu paylaşıyorum:
<?phpfunction 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:$json = seomoz("www.turk-php.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:
array(13) { ["fmrp"]=> float(3.0741889752691) ["fmrr"]=> float(6.8230103124604E-10) ["pda"]=> float(20.624589977163) ["ueid"]=> int(30) ["ufq"]=> string(18) "www.turk-php.com/" ["uid"]=> int(421) ["umrp"]=> float(4.4399377088343) ["umrr"]=> float(3.9712982973246E-10) ["upa"]=> float(27.094229777475) ["upl"]=> string(14) "turk-php.com/" ["us"]=> int(200) ["ut"]=> string(43) "Turk-PHP - Güncel Programlama Makaleleri" ["uu"]=> string(18) "www.turk-php.com/" }
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:
// Verimizi çekelim $json = seomoz("www.turk-php.com/","member-xxxxxxx", "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"); // Şimdi başlığımızı çekelim $baslik_bozuk = $json["ut"]; // Ekran çıktısı: Turk-PHP - Güncel Programlama Makaleleri $baslik_okay = iconv("UTF-8", "ISO-8859-9", $baslik_bozuk); // Ekran çıktısı: Turk-PHP - Güncel Programlama Makaleleri
Yorumlar
Yorum Gönder