cURL Dersleri

Php ile Goo.gl Servisini Kullanarak Link Kısaltmak

Her ne kadar fazla rağbet görmese de linkleri kısaltmak isteyenler için birçok link kısaltma servisi bulunmaktadır. Aslında bu kısaltma işlemini yapmak çok basit bir işlemden geçse de kendi sisteminizi kurmak yerine var olan kısaltma servislerini kullanmak isterseniz o zaman size güzel bir kıyak yaparak goo.gl servisini kullanarak hızlı bir biçimde linki kısaltmış olacağız.

Kısaltma işlemini geleneksel olarak cURL bağlantısı yaparak hazırladım fakat file_get_contents kullanırsanız da bir sorun çıkacağını düşünmüyorum. İşlemimiz link kısaltma olduğundan konuyu da kısa geçip direk işleme geçiyorum.

Function Baglan($link){
   $ch  = curl_init();
   curl_setopt($ch,CURLOPT_URL,$link);
   curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
   curl_setopt($ch,CURLOPT_REFERER,"http://www.yandex.com.tr");
   $Curl = curl_exec($ch);
   curl_close($ch);
return $Curl;
}

Klasik bir hal olan cURL yapısı ile hazırlanmış bağlantımızı oluşturuyoruz. Bu bağlantı bizim siteye bağlanıp verileri almamızı sağlayacaktır.

Şimdi bir değişken belirleyelim. Bu değişken kısaltılmasını istediğimiz link olsun;

$Site = "https://ibrahimcevruk.com";

Yukarıdaki gibi değişkenimizi de tanımladık. Şimdi siteye bağlanalım ve işlem görmesini istediğimiz linki gönderelim.

$Baglan = Baglan("http://urltinyfy.appspot.com/googl?url=".$Site);

Şimdi siteye bağlanıp, hangi adresi kısaltmak istediğimizi belitmiş olduk. Yukarıdaki $Baglan değişkenini ekrana yazdırdığımızda bize şöyle bir çıktı verecektir;

{"short_url": "http://goo.gl/aN8Wf", "kind": "urlshortener#url", "id": "http://goo.gl/aN8Wf", "longUrl": "https://ibrahimcevruk.com/"}

Görmüş olduğunuz gibi çıktı da hem kullanılan sitenin adresi hem de kısaltılmış hali var. Kısaltılmış hali id değeri içinde gelmekte. Şimdi bu değeri almak için preg_match_all ile id değerinin içindeki değeri alalım.

preg_match_all('@"id": "(.*?)"@si',$Baglan,$Link);

Siteye bağlandık, site bilgilerimizi gönderdik ve çıktıyı aldık. Çıktı sonrasında istediğimiz alanı preg_match_all ile çektik. Şimdi ekrana yazdırmak gerektiği zaman şunu kullanmalıyız;

print_r($Link[1][0]);

Yukarıdaki işlemler sonrasında yazmış olduğunuz linkin kısaltılmış değerini direk olarak alacaksınız.

Ek olarak yapılan bu işlemlerde kullanılan site adresinin doğru yazılıp yazılmadığını kontrol etmek için çoğu sitede var olan şu fonksiyonu kullanabilirsiniz.

function Kontrol($str){
  return (!preg_match('/^(http|https):\/\/([A-Z0-9][A-Z0-9_-]*(?:\.[A-Z0-9][A-Z0-9_-]*)+):?(\d+)?\/?/i', $str)) ? false: true;
}

Yukarıdaki fonksiyonu baglan fonksiyonunun altına yazmanız gerekmektedir. Kullanım için ise yukarıdaki değeri şununla değiştirebilirsiniz;

if(Kontrol($Site)){
 // Bu alana $Baglan değişkeninden başlayarak içerikleri yazınız.
}else{
 echo "Link Yapınız Geçersiz.";
}

Unutmayınız ki ben burada işlemlerin nasıl yapılacağına dair fikirler üretmenizi sağlıyorum. Buradaki örnek isterseniz POST/GET ya da jQuery ile kullanabilirsiniz. Burada önemli olan işlemlerin nasıl yapıldığını öğrenebilmek. Geri kalan ise sizin yaratıcılığınız.

Bir önceki yazım olan Php ile Hava Durumu Botu Yapmak | Meteoroloji.gov.tr başlıklı makalemi de okumanızı öneririm.

İlgilizi Çekecek Konular

Instagram Api İle Etikete Göre Veri Çekme

ibrahim Çevrük

cURL ile Instagram Fotoğraflarını İndirme

ibrahim Çevrük

Php ile Yapılan Basit Botu Veritabanına Kayıt Etme

ibrahim Çevrük

Yorum Giriniz