CREAR TU PROPIO SHORT URL

Posted on 22/07/2011

0



Para los que usan twitter o facebook, saben que tienen cierta capacidad de caracteres para escribir en su estado, eso hace que escriban lo mas breve posible, y que pasa cuando quieren compartir una dirección mediante la url y esta a su vez es “infinita”?, existen servicios que permiten acortar esa url “infinita” en una url mucho mas corta y que redirecciona a la misma url anterior. Bien, esto nos puede ser de buena ayuda para camuflar urls que tengan parámetros que a simple vista asusten a los usuarios o que lleven a sitios sospechosos, etc.

Entonces ahora que esta de moda que todo el mundo esta que bloquea contenidos que no favorece a su política o a su entorno de negocio, y así cada vez mas dejar menos espacio a la libertad de expresión, me decidí a crear mi propia short url, es muy simple si sabes php y tienes un hosting con un nombre de dominio lo mas corto posible.

Aquí te dejo el código de como hacer un short url.

Pagina principal donde vas a introducir la url a cortar:

<html>
<body>
<br>
<br>
<center><h1>F41 SH0R7 UR1</h1></center>
<form method="POST" action="shortProcess.php">
	<center><input type="text" name="url" style="width: 500px" /><input type="submit"  value="aceptar" style="width: 100px" /></center>
        <center><a href='convert.html'>convertir texto</a></center>
</form>
<body>
</html>

Ahora la pagina donde se procesará el corte a la url:

<?php
require('conexion.php');
$url = $_POST['url'];

$length = 4;
$code = md5(uniqid(rand(), true));

if ($length != ""){
	$codeGenerator = substr($code, 0, $length);
}
else{
	$codeGenerator = $code;
} 

$body =
"<?php \n" .
"require('../conexion.php'); \n" .
"\$query = \"select url_initial from short_url where code_generator = '$codeGenerator';\"; \n" .
"\$result = mysql_query(\$query); \n" .
"while (\$row = mysql_fetch_array(\$result)){ \n" .
"		\$urlInitial=\$row[url_initial]; \n" .
"} \n" .
"echo \"<script language='javascript'> location.href='\$urlInitial'; </script> \"; \n".
"?>";

$query = "select count(*) as cant from short_url where code_generator = '$codeGenerator';";
$result = mysql_query($query) or die ($Sql .mysql_error()."" );
while ($row = mysql_fetch_array($result)){
		$cant=$row[cant];
}

if ($cant == 0){
	$host = "http://py.site11.com";
	$urlFinal = $host . '/' . $codeGenerator;

	mkdir("$codeGenerator", 0777);

	$newFile = fopen("./$codeGenerator/index.php", "w");

	fwrite ($newFile, $body);

	fclose ($newFile);

	//copy('./index/index.php',"./$codeGenerator/index.php"); 

	$query = "insert into short_url (id,url_initial,code_generator,url_final) ".
		"values (null,'$url','$codeGenerator','$urlFinal')";
	mysql_query($query);

	echo "<a href='$urlFinal'>$urlFinal</a>";
}
else{
	echo "Por favor, intente otra vez.";
}

?>

Y listo, me olvidaba tienes que crear una tabla donde guardaras los datos tales como la url inicial, la url final.

Aquí te dejo mi short url, aun esta simple mas adelante le pondré mas funcionalidades tiny.cc/insto 😉

Anuncios
Etiquetado: ,
Posted in: php, short url