Php - Récupérer une adresse de redirection - bit.ly, goo.gl, etc. ( via Curl )

ARCHIVE
Pour traiter les entêtes http récupérées via curl, nous aurons besoin de cette fonction, qui sera appellée pour traiter les données obtenues.   Le code PHP :
function read_header($url, $str) { // Nous utiliserons la variable true_link pour stocker l'adresse de destination global $true_link; // Si le header traité contient 'Location', cela signifie que c'est celui qui nous intéresse ! if(eregi('Location', $str)){ // On remplace "Location" pour ne conserver que l'adresse de destination $true_link=eregi_replace('Location:', '', $str); } return strlen($str); } function true_link($url){ $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); curl_setopt($curl, CURLOPT_HEADER, true); curl_setopt($curl, CURLOPT_HEADERFUNCTION, 'read_header'); $page = curl_exec($curl); curl_close($curl); global $true_link; $true_link=rtrim(ltrim(trim($true_link))); return $true_link; }  
L'utilisation :
<?php $lien_de_destination = true_link($url); ?>
  Par exemple, pour récupérer l'adresse de http://bit.ly/cHnPHj :
<?php $lien_de_destination = true_link('http://bit.ly/cHnPHj'); ?
  Ce qui nous permet d'obtenir http://gregoire-penverne.fr ^   Crédits: Merci à http://www.geoffray.be/ , qui m'a permis de faire la connaissance de CURLOPT_HEADER ^
Une question? Une remarque? Un avis? Twittons-en!

When you click on links to various merchants on this site and make a purchase, this can result in this site earning a commission.
Affiliate programs and affiliations include, but are not limited to, the eBay Partner Network and Amazon.