Compactador de URL utilizando manipulação de diretórios do Linux com PHP

Esse artigo mostra com criar um compactador de URL como a exemplo dos sites migre.me, bit.ly, tinyurl.com etc para utilização em sites como o Twitter. Utiliza a linguagem de programação PHP para fazer a manipulação de diretórios dentro do filesystem do servidor web que fornecerá o serviço.

[ Hits: 13.689 ]

Por: Ricardo Ferreira Martins em 16/10/2010


Criando um formulário em HTML para enviar da URL ao sistema compactador de URL



Nesse artigo compartilharei como criar um site como o migre.me (compactador de URL).

Primeiramente busque no www.vivaolinux.com.br algum artigo que ensine a instalação e configuração do PHP5 e o Apache.

Nosso sistema será composto somente de 2 arquivos de extensão .php que deverão ser hospedados no caminho absoluto: /var/www/nome_sua_aplicacao/ ou conforme configuração do seu web server.

index.php:

<html>
<head>
<script>
function copytoclipboard()
{
   this.document.execCommand("SelectAll", true);
   this.document.execCommand("Copy", true);
   this.document.execCommand("UnSelect", true);
}
</script>
</head>
<body>
<form action="geraurl.php" method="post">
<pre>Link:<input type="text" name="URL"/><input type="submit" value="enviar" />
</pre>
</form>
</body>
</html>
<?
if($_GET){
   echo '<pre>Old link: http://' . $_GET["u"] .'<br/>
                   New link: <a onclick="copytoclipboard();" target="_blank" href="'.$_GET["nl"].'">' . $_GET["nl"] .'</a><br /><br />
         Contribuição para <a target="_blank"href="http://twitter.com/bambuzal">vivaolinux.com.br</a></pre>';}
?>

Nesse primeiro arquivo é onde deve ser preenchido o formulário que será enviado para o compactador de URL "geraurl.php" que será explicitado mais a frente, após a explicação do código acima.

Nesse arquivo "index.php" temos uma mistura de HTML com código PHP, além do JavaScript, que serve nesse caso para fazer a cópia automática para a área de transferência de sua RAM da sua nova URL. Sintetizando: Ctrl+C ativado pelo evento onClick do JavaScript.

O código PHP somente verifica se há alguma variável chegando via método GET do protocolo HTTP. Caso afirmativo, será mostrado na tela o link antigo e o novo link. Caso negativo, visualiza-se somente o formulário HTML.

Um exemplo por ser encontrado no endereço:
    Próxima página

Páginas do artigo
   1. Criando um formulário em HTML para enviar da URL ao sistema compactador de URL
   2. Recebendo os dados do usuário, gerando o novo link e retornando as novas informações geradas
Outros artigos deste autor

Acessando o Twitter de 5 formas: protocolo HTTP, cURL, classe HttpRequest (PHP), função http_post_fields() do PHP ou PHP+libcurl

Leitura recomendada

Usando cache na classe Fast Template

Criando um sistema de banners rotativos em PHP

Guia completo do Ocomon módulo admin no Linux (exclusivo VOL)

Formantando nomes com caracteres especiais em PHP

Symfony Framework - Introdução

  
Comentários
[1] Comentário enviado por mtarroyo em 10/11/2010 - 09:11h

Legal o artigo, acredito que seria uma boa também verificar se o diretório gerado através da função rand() já existe no servidor. Eu sei que pode ser bem difícil de acontecer, mas, em um sistema com um grande número de usuários, é bom sempre garantir.

$rand = substr(rand(), 0, 4);

if(is_dir($rand) === TRUE)
{
echo '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">';
echo '<html>';
echo '<head>';
echo '<title>Twitter.com/bambuzal</title>';
echo '<META HTTP-EQUIV=REFRESH CONTENT="1;URL=geraurl.php?URL=<?echo $_POST['URL']; ?>">';
echo '</head>';
echo '<body>';
echo '</body>';
echo '</html>';

die();
}

Dessa forma, caso o diretório gerado ja exista, o script geraurl.php é reiniciado. Da para deixar o script mais prático que isso, mas echo que assim da para entender legal o que eu quis dizer.

Abraços!


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts