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]");'), $string);
Kanske någon som har användning för detta?
Äntligen tillbaka till normalt! Skönt!
Nattduksbord
Måste bygga någon slags hållare till alla tvingar
Spelar Zelda på liten hotell-TV :)
Mina sinkningar är ju allt annat än perfekta. Måste öva mer!
Nu ska jag väl för tusan kunna bygga lådor med helt raka hörn?? :)
Khaleesi! Efter PanPastel så är det Luminance-pennorna.
Fixade så att jag kan använda Incras i-box på min Hammer-såg. Nu ska jag bara lista ut varför mina sinkningar blir fel.
Gillar inte den här strukturen på papper. Funkar bra för pastell men inget vidare för färgpennor
Pan Pastel-kladd som kanske kan bli något. Någon som ser vad det ska bli?
Tror det här med Crock Pot kan vara ett vinnande koncept :)
PanPastel-porträtt
Tror den börjar bli klar..
Nog med PanPastels, nu lite fixativ och sen Faber-Castell polychromos!
Testar mer med PanPastel
Äntligen!!! Nu måste jag bara vänta ett par veckor innan den kan folieras igen.
Har skaffat en Crock Pot för jag hatar att laga mat. Spännande!
Crock Pot
PanPastel
Stort hängigt träd i Stockholm
Har testat PanPastel för första gången. Ovant men rätt så mysigt!
Spacklat och slipat, färdig att målas. Och så har jag ingen färg…
Trälim + sågspån = första hjälpen för sprickor i trä.
Tron för Sigge
Road Trip Italien!
Verkstad Remake
Jonas och Jenna
Brud som chillar
Showing off
Undressing
Touch thyself
Hot Love
Profilporträtt
Resa utan kamera?
Paus
Supernöjd med folieringen!
Bilen ska folieras!
Ny såg
PHP och BankID
Jack Skellington
Verkstadsplaner
Magnettavla
Verandatak och grillhörna!
Vardagsrumsbord
Knivblock
Kökshylla
Ny ikon för karta
PC-bygge
Kerlee 35mm f/1.2
Objektivhylla
Natalie Dormer
Hållare till kattmatsskålar
Hälsningar från Norge
With a little help from my friends...
The Most Incredible Fantasy Maps You've Ever Seen
Cityfestivalen
Mitakon Speedmaster 50mm/f0,95
10 minuter vatten
Sony A7R II
Petzval 58 Bokeh Control Art Lens
Scrawlrbox
Nya skärmar till jobbet
Nikon Df - ny leksak
Boba Fett
First Order Storm Trooper
Mikisen
Star Wars-maraton!
Viola
Det händer grejer!
#inlineditbutton