Expandera korta URL:ar
När man jobbar med att tolka Twitterstatusar och liknande så inser man snabbt att man ofta hanterar korta URL:ar, alltså en URL som används som en redirect till en annan URL för att bli kortare för att rymmas i en statusuppdatering på ett snyggt sätt.
Men i regel så vill jag inte hantera korta url:ar, utan vill ha originaladressen, så jag skrev en liten funktion för att expandera dessa URL:ar som ser ut så här:
<?     function expand_url($url){         $ourl $url;         if ($return get_cache_data($url"1 month""AAA")) return $return;         while (1){             $nr++;             if ($nr 10){                 return $url;             }             if (strstr($url"www")) return $url;             if ($redirect get_url_redirect($url)){                 $url $redirect;             } else {                 save_cache_data($ourl$url"AAA");                 return $url;             }         }     }     function get_url_redirect($url){         $curl shell_exec($GLOBALS["curl_path"] . " -I -# '" addslashes($url) . "'");         if (preg_match("/Location: (.*?)s/"$curl$m)){             return $m[1];         } else {             return false;         }     } ?>
Så, vad den gör är att den loop:ar tills den har hittat originaladressen (eller högst tio gånger). Detta går inte snabbt, eftersom den kontaktar servarna för att hitta en "Location:" header och sedan kontrollera även den tills dess att sidan inte har någon Location-header. Så för en adress som är "förkortad" endast en gång så görs två förfrågningar, om inte adressen har innehåller "www", vilket i regel betyder att adressen inte är en förkortad version.
Så här använder du den:
print expand_url("http://flpbd.it/hNFJN");
Vill du byta ut alla adresser i en textsträng mot eventuella längre versioner av dem, använd då detta:
$string = preg_replace_callback("!(http://[^s]*)!", create_function('$matches', 'return expand_url("$matches[0]"wink;'), $string);
Kanske någon som har användning för detta?
Mer i Tutorials
Skapa ett Netflixprogram PHP Formatera telefonnummer Modellera URLar Expandera korta URLar Parsea hashtaggar Repeterande schema i iCal med AppleScript VÃlj datumspann med jQuery
Nyckelord: php, shorturl, short link, expanding url eller expandera
Expandera korta URLar OAuth fungerar inte Hur nya iPaden stÃller till det pà webben Layoutmotor fÃr Atlas Bygg MySQLqueries automatiskt Min feed RÃkna tid med PHP