Hoje estava eu aqui, sem fazer nada, e resolvi criar uma funçãozinha muito da legal que usa o API do TinyURL para converter as suas URLs.
O TinyURL faz o serviço de converter URLs gigantescas (não importa o seu tamanho) em URLs menores, de 20~25 caracteres (incluindo o http)
Ela é bem simples e a única coisa que você precisa fazer é passar a sua URL pra ela que ela vai te retornar a URL reduzida.
A vantagem de usar essa função (e não as que eu achei por aí, buscando no Google) é que ela identifica qual é o melhor método pra fazer a requisição à essa API, usando a biblioteca cURL, file_get_contents() ou fopen()+fgets(). ;D
Código da Função
<?php
/**
* Função para criar versões reduzidas das URLs
*
* @author Thiago Belem <contato@thiagobelem.net>
*
* @param string $url O endereço a ser reduzido
* @return string A nova URL (usando o TinyURL)
*/
function tinyURL($url)
{
define('TINYURL_API', 'http://tinyurl.com/api-create.php?url=%s');
$requestURL = sprintf(TINYURL_API, $url);
// Checa a existência da biblioteca cURL
$curl = (bool) function_exists('curl_init');
// Checa a variável allow_url_fopen no php.ini
$allow_url = (bool) ini_get('allow_url_fopen');
// Verifica se a biblioteca cURL existe e se não é possível usar URLs no fopen
if ($curl AND !$allow_url) {
// Caso exista, usa o cURL para fazer a requisição
$ch = curl_init($requestURL);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$resultado = curl_exec($ch);
curl_close($ch);
// Caso não possa usar o cURL ou possa usar URLs no fopen
} else if ($allow_url) {
// Tenta usar o file_get_contents
$resultado = file_get_contents($requestURL);
// Se algo der errado, tenta com o fopen
if (!$resultado) {
$handle = @fopen($requestURL, "r");
$resultado = '';
if ($handle) while (!feof($handle)) $resultado .= fgets($handle, 4096);
}
// Caso não possa usar nenhum dos dois
} else {
// Exibe uma mensagem de erro
trigger_error('tinyURL: Não é possível usar o cURL nem URLs com fopen!', E_USER_ERROR);
}
// Retorna o resultado sem espaços adicionais ou a URL original caso algo tenha dado errado
return ((isset($resultado) AND !empty($resultado)) ? trim($resultado) : $url);
}
?>Exemplo de uso (se é que precisa..)
<?php
echo tinyURL('http://blog.thiagobelem.net/');
// http://tinyurl.com/kwzg4w
?>
Espero que tenham gostado! ![]()
Você também vai gostar de ler:
- Buscando a Latitude e Longitude de um endereço – Google Maps + PHP – Parte 1
- Resultados de busca do Google no seu site
- Tutorial básico de cURL – Instalação, configuração e uso
- Removendo acentos de uma string – URLs amigáveis
- Twittando pelo PHP
Com as tags API, Busca, Código, cURL, empty, File, Google, PHP, Scripts, TinyURL, URL
Escrito por Thiago Belem
Gostou desse artigo?
Não se esqueça de assinar o RSS e divulgue-o para o mundo:

Se você fizer esse código pra ASP, sim.
Xô explicar direito, e pasos parametros via email… por exemplo…http://www.dominio.com.br/pagina.asp?variavel1&variavel2&variavel3….
essa ariaveis sao definidas pelo formulario que a pessoa preenche… depois ela recebe por email um link gigante que aparecem todas as variaveis (feiao)
tem como fazer isso? abraços….
Não
tem dessa em .asp???
Este é melhor: http://www.re9.in. Clique em “API” e depois em “Clique aqui para baixar o exemplo em php”. (eu achei melhor).
[],
Bruno T.
Cara tu salvou minha pele, to tentando pegar o retorno da url criada pelo tinyurl via ajax a horas. Sua solução parece ser a melhor mesmo…. nem tinha me passado na cabeça usar o ccurl pra isso.
Valeu pela dica!