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 ^