Seite 1 von 1

Kurzer URL per PHP erstellen

Verfasst: 28.08.2009 06:33
von Carmen
Hallo,

hat jemand von euch ein Code Beispiel womit man eine kurze URL automatisch bei tinyurl.com erzeugen kann? Es wäre echt nett, wenn mir jemand dabei helfen können.

LG Carmen

Verfasst: 28.08.2009 07:10
von admin
Hallo Carmen,

dies könntest du mit folgendem Beispiel realisieren. Bitte beachte, dass bei deinem PHP Webspace die Funktion allow_url_fopen aktiv sein muss. Da sonst PHP nicht die Berechtigung hat, auf eine externe Datei zuzugreifen. In meinem Beispiel verwende ich eine PHP function, eine Erklärung wie man mit einer PHP function arbeitet kannst du unter folgender Adresse nachlesen.

Hier die Adresse zu der Erklärung wie man mit einer PHP function arbeitet:
http://www.php-space.info/php/space/php-function.php

Das Code Beispiel wie du einer Abfrage bei tinyurl.com umsetzt.

Code: Alles auswählen

<?php
function kurze_url($url){
	if (is_url($url)){
		$kurze_url=file_get_contents('http://tinyurl.com/api-create.php?url='.urldecode($url));
		return $kurze_url;
	} else {
		return false;
	}
}
function is_url($url){
    $url = substr($url,-1) == "/" ? substr($url,0,-1) : $url;
    if ( !$url || $url=="" ) return false;
    if ( !( $parts = @parse_url( $url ) ) ) return false;
    else {
        if ( $parts['scheme'] != "http" && $parts['scheme'] != "https" && $parts['scheme'] != "ftp" && $parts['scheme'] != "gopher" ) return false;
        else if ( !eregi( "^[0-9a-z]([-.]?[0-9a-z])*.[a-z]{2,4}$", $parts['host'], $regs ) ) return false;
        else if ( !eregi( "^([0-9a-z-]|[_])*$", $parts['user'], $regs ) ) return false;
        else if ( !eregi( "^([0-9a-z-]|[_])*$", $parts['pass'], $regs ) ) return false;
        else if ( !eregi( "^[0-9a-z/_.@~-]*$", $parts['path'], $regs ) ) return false;
        else if ( !eregi( "^[0-9a-z?&=#,]*$", $parts['query'], $regs ) ) return false;
    }
    return true;
}
$meine_url='http://www.cgiforum.de';
$tinyurl=kurze_url($meine_url);
if($tinyurl!=false)
echo $tinyurl;
?>