URL to tiny url
Auteur: Youri - 21 juni 2009 - 12:11 - Gekeurd door: Koen - Hits: 11412 - Aantal punten: (0 stemmen)
!!
LET OP : De functie cURL moet aanstaan op de server (http://www.php.net/cURL).
!!
Verdere uitleg staat in de code
Code:
Wat doet deze functie ?
De functie zorgt ervoor dat een URL word getransformeerd naar een kleine URL, bijvoorbeeld erg handig in forums waar je backlinks/crosslinks wilt verbergen.
Werking
Elke keer waarneer de functie word aangeroepen maakt hij een unieke code aan op een van de hosts, het script kan dus alleen maar toegepast worden in de $_POST.
De hosts
Omdat ik voor de hosts een simpel - maar krachtig api systeem heb ontwikkeld is het script gemakkelijk te implanteren in een eigen site.
De functie
<?
function short_url ( $url, $html = false ) {
## shortUrl hosts
$hosts = array ( "it1.nl/", "it5.nl/", "g2l.nl/" );
## randomHost
$hostId = rand(0,2);
$host = "http://" . $hosts[$hostId] . "api/api.php?key=444&method=new&website="; // Leave key 444 for UBB services.
## Path
$ch = curl_init( $host . $url );
curl_setopt($ch, CURLOPT_TIMEOUT, 5);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$cData = curl_exec($ch);
curl_Close($ch);
if ( !json_decode($cData) == null ) {
$array = json_decode($cData);
$newUrl = $array->code;
$link = "http://" . $hosts[$hostId] . $newUrl;
$newLink = $link;
} else $newLink = $url;
if ( $html ) return '<a href="'. $newLink .'" target="_blank">'. $newLink .'</a>'; else return $newLink;
}
?>
<?
function short_url ( $url , $html = false ) {
## shortUrl hosts
$hosts = array ( "it1.nl/" , "it5.nl/" , "g2l.nl/" ) ;
## randomHost
$host = "http://" . $hosts [ $hostId ] . "api/api.php?key=444&method=new&website=" ; // Leave key 444 for UBB services.
## Path
$ch = curl_init( $host . $url ) ;
curl_setopt( $ch , CURLOPT_TIMEOUT, 5 ) ;
curl_setopt( $ch , CURLOPT_CONNECTTIMEOUT, 5 ) ;
curl_setopt( $ch , CURLOPT_RETURNTRANSFER, true ) ;
$cData = curl_exec( $ch ) ;
curl_Close( $ch ) ;
if ( ! json_decode( $cData ) == null ) {
$array = json_decode( $cData ) ;
$newUrl = $array -> code ;
$link = "http://" . $hosts [ $hostId ] . $newUrl ;
$newLink = $link ;
} else $newLink = $url ;
if ( $html ) return '<a href="' . $newLink . '" target="_blank">' . $newLink . '</a>' ; else return $newLink ;
}
?>
Voorbeeld
Een simpele voorbeeld in een post formatie..
<?php
function url_stripper ( $input ) {
$input = preg_replace("_\[url\](.*?)\[/url\]_ise","short_url('\\1', false)", $input);
return $input;
}
mysql_query ( 'INSERT INTO.... ( bericht ) values ( '. url_stripper( $_POST["bericht"] ) .' ) WHERE id = ');
?>
<?php
function url_stripper ( $input ) {
$input = preg_replace ( "_\[url\](.*?)\[/url\]_ise" , "short_url('\\1 ', false)" , $input ) ; return $input ;
}
mysql_query ( 'INSERT INTO.... ( bericht ) values ( ' . url_stripper
( $_POST [ "bericht" ] ) . ' ) WHERE id = ' ) ;
?>
Download code (.txt)
Stemmen
Niet ingelogd.