seomoz-roger1

SEOmoz API’sini Kullanarak Bilgi Çeken Fonksiyon

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:

<?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:

$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:

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/"
}

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.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..

Post Author: Oral ÜNAL

Web geliştirmeyi başta meslek olarak hayal eden fakat daha sonra bir hobi haline getiren birisiyim işte.

Yorum yazma sırası sizde!