Comunidad de diseño web y desarrollo en internet

Expandir URLs acortadas con PHP y longurl.org

Cuando trabajamos con la API de twitter, resulta que la mayoría de los enlaces o url’s están acortados, asi que en algún momento de nuestro desarrollo puede ser necesario expandir estas url’s tan pequeñas. Aunque no solamente twitter usa url’s cortas, las podemos encontrar también en blogs, en facebook, en tumblr, incluso aquí en Cristalab y regadas por toda la web.

La forma lógica de expandirlas seria. Encontrar el dominio de la url usando expresiones regulares, y luego proceder según sea el caso, ya sea con la api oficial del acortador o con ayuda de los headers que la url devuelva, pero ya que existen mas de 100 acortadores de url´s esto puede ser un trabajo monumental.

Así que aquí les comparto un código PHP que hace la mágica tarea de expandir casi cualquier url corta.

Código :

function expand_url($url){
    $apiurl = "http://api.longurl.org/v2/expand?url=".urlencode($url);
    $chi = curl_init();
    curl_setopt($chi, CURLOPT_URL, $apiurl);
    curl_setopt($chi, CURLOPT_RETURNTRANSFER, 1);
    $resulti = curl_exec($chi);
    $resultinfo = curl_getinfo($chi);
    curl_close($chi);
    $xmli = simplexml_load_string($resulti, 'SimpleXMLElement', LIBXML_NOCDATA);
    return $xmli->{"long-url"};
}

Como podrán notar, para que esta función funcione, es necesario usar CURL, una librería de PHP muy divertida, y una API especial que hace prácticamente todo el trabajo. http://longurl.org ellos soportan a una gran cantidad de acortadores de url’s.

Curl, en pocas palabras accede a la api de longurl, por medio de una url. Luego esta url nos devuelve un xml con la url expandida, pueden comprobarlo ustedes mismos poniendo http://api.longurl.org/v2/expand?url= en la barra del navegador, seguido de una url corta.

Despues de recoger el xml con curl_exec() y simplexml_load_string() devolvemos una larga y aburrida, pero útil url.

¿Sabes SQL? ¿No-SQL? Aprende MySQL, PostgreSQL, MongoDB, Redis y más con el Curso Profesional de Bases de Datos que empieza el martes, en vivo.

Publica tu comentario

o puedes...

¿Estás registrado en Cristalab y quieres
publicar tu URL y avatar?

¿No estás registrado aún pero quieres hacerlo antes de publicar tu comentario?

Registrate