Kontakt aufnehmen

Urls kürzen mit PHP (Url Shortener APIs)

Jeder der Twitter benutzt kennt sie – die kurzen Urls. Viele Url Shortener bieten die Möglichkeit Urls über die API zu kürzen. Damit kann man dem User zum Beispiel schon im Artikel eine Kurz-Urlanbieten. Man kann das Ganze auch dazu benutzen, um automatisiert neue Artikel o.Ä. nach Twitter zu posten.

Die APIs der Url Shortener funktionieren alle nach dem gleichen Prinzip: Man übergibt die Url als Parameter zu einer Website und man bekommt die Kurz-Url zurück. Beispiel:

http://is.gd/api.php?longurl=http://stevieswebsite.de

Wenn man diese Seite besucht bekommt man den folgenden Link:

http://is.gd/5O2ZU

Also muss man nur die Url zusammensetzen und den Inhalt auslesen. Ich habe mir bereits einige Url Shortener rausgesucht und je eine Funktion gebastelt, mit welcher man die Kurz-Url zurückbekommt.

Dafür muss in der php.ini die Einstellung allow_url_fopen auf On geschaltet werden (wenn sie es noch nicht ist).

Hier sind die Funktionen der einzelnen Anbieter (Ich habe extra jeweils eine Funktion gemacht, da man i.d.R. sowieso nur einen Anbieter braucht):

Bit.ly

<?php
  function shortBitLy($url){
    $res = "";
    $handle = @fopen("http://bit.ly/api?url=".urlencode($url), "rb");
    if($handle){
      while (!feof($handle)) {
        $res .= fgets($handle,2000);
      }
      fclose($handle);
    }
    else{
      throw new Exception("Link kann nicht gekürzt werden!");
    }
    return $res;
  }
?>

Is.Gd

<?php
  functionshortIsGd($url){
    $res = "";
    $handle = @fopen("http://is.gd/api.php?longurl=".urlencode($url), "rb");
    if($handle){
      while (!feof($handle)) {
        $res .= fgets($handle,2000);
      }
      fclose($handle);
    }
    else{
      throw new Exception("Link kann nicht gekürzt werden!");
    }
    return $res;
  }
?>

TinyUrl

<?php 
  functionshortTinyUrl($url){
    $res = "";
    $handle = @fopen("http://tinyurl.com/api-create.php?url=".urlencode($url), "rb");
    if($handle){
      while (!feof($handle)) {
        $res .= fgets($handle,2000);
      }
      fclose($handle);
    }
    else{
      throw new Exception("Link kann nicht gekürzt werden!");
    }
    return $res;
  }
?>

Krz.ch

<?php
  function shortKrzCh($url){
    $res = "";
    $handle = @fopen("http://krz.ch/?module=ShortURL&file=Add&mode=API&url=".urlencode($url), "rb");
    if($handle){
      while (!feof($handle)) {
        $res .= fgets($handle,2000);
      }
      fclose($handle);
    }
    else{
      throw new Exception("Link kann nicht gekürzt werden!");
    }
    return $res;
  }
?>

Redir.ec

<?php
  function shortRedirEc($url){
    $res = "";
    $handle = @fopen("http://redir.ec/_api/rest/redirec/create?url=".urlencode($url), "rb");
    if($handle){
      while (!feof($handle)) {
        $res .= fgets($handle,2000);
      }
      fclose($handle);
    }
    else{
      throw new Exception("Link kann nicht gekürzt werden!");
    }
    return $res;
  }
?>

U.nu

<?php
  function shortUNu($url){
    $res = "";
    $handle = @fopen("http://u.nu/unu-api-simple?url=".urlencode($url), "rb");
    if($handle){
      while (!feof($handle)) {
        $res .= fgets($handle,2000);
      }
      fclose($handle);
    }
    else{
      throw new Exception("Link kann nicht gekürzt werden!");
    }
    return $res;
  }
?>

Du arbeitest in einer Agentur oder als Freelancer?
Dann wirf doch mal einen Blick auf unsere Software FeatValue.

Kommentare

Buzz schrieb am 11.02.2010:

Danke für die gute Zusammenstellung. urldirect.de funktioniert ebenfalls auf dem gleichen Weg, wie tinyurl.

Dennis schrieb am 04.03.2011:

Super - genau was ich gesucht habe. Vielen Dank!

Über uns

Stefan Wienströer

Wir entwickeln Webanwendungen mit viel Leidenschaft. Unser Wissen geben wir dabei gerne weiter. Mehr über a coding project

Cookie-Einstellungen

Helfen Sie dabei, uns noch besser zu machen. Wir nutzen Cookies und ähnliche Technologien, um die Website auf Ihre Bedürfnisse anzupassen. Zur Datenschutzerklärung

Auswahl speichern