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: 12.714 ]

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

Como programar com OOP em PHP, uma classe simples

Guia completo do Ocomon no Linux - Módulo cliente, abertura de ocorrência (exclusivo VOL)

Usando classes em conexão e consultas à banco de dados em PHP

Criando gráficos com a classe JPGraph (parte 2)

Tags automáticas em URLs com a classe urlmatch da PHP

  
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