Lessn: script para acortar URLs
Lessn es un script en PHP5 y MySQL que permite realizar un acortador de URLs al estilo micurl o parecidos.
Lessn
Vía / Script & Style
Lessn es un script en PHP5 y MySQL que permite realizar un acortador de URLs al estilo micurl o parecidos.
Lessn
Vía / Script & Style
LinkedPHP es una librería PHP que hace uso de la librería PECL de OAuth para hacer uso del API de LinkedIn. Según veo no se trata de una librería completa, y además prefiero utilizar la librería normal, pero bueno, es una librería que nos puede venir muy bien si vamos a tratar con la API de LinkedIn.
PHP Quick Profiler es una librería que nos puede ser muy útil cuando queramos realizar debug de nuestras aplicaciones PHP. Podemos integrar esta librería en cualquier código nuestro de forma muy sencilla, y los datos que nos devuelve, a parte de muy bien diseñados, son muy completos.

Podemos obtener datos del uso de memoria, includes de ficheros realizados, tiempos de ejecución, actividad de la base de datos o simples logs propios.
PHP Quick Profiler
Gracias David por el aviso (@dmnet)
WordPress se puede utilizar para muchas cosas y no sólo para crear un blog. En el caso de que quieras realizar un blog multi-idioma y necesites traducir el blog según el idioma del navegador del usuario, no el contenido, que para eso hay algún plugin, tan sólo deberemos añadir lo siguiente a nuestro functions.php:
function set_language($locale) {
if (isset($_SERVER ["HTTP_ACCEPT_LANGUAGE"])) {
$langs = $_SERVER ["HTTP_ACCEPT_LANGUAGE"];
$langs = explode(',', $langs);
$langs = $langs[0];
$langs = explode('-', $langs);
return $langs[0].'_'.strtoupper($langs[1]);
} else {
return $locale;
}
}
add_filter( 'theme_locale', 'set_language');
Con esto conseguimos que si el lenguaje de nuestro navegador sea es-es, pase a es_ES y con ese locale, pues podemos usarlo en la traducción del theme junto a la función load_theme_textdomain
Ha salido a la luz la nueva versión de PHP, en esta ocasión se trata de la versión 5.2.3, siendo recomendable su instalación.
Esta nueva versión soluciona 6 cuestiones de seguridad, una de ellas es la función mysql_set_charset() la cual permite modificar la codificación de la conexión.
Además entre optimizaciones y correcciones de errores, hay más de 40 cambios más, destacando la mejora de las funciones md5() y sha1().
PHP 5.2.3 Release Announcement
VÃa / iBlog – Ilia Alshanetsky
Sphinx es un buscador de texto bastante rápido y potente (pensado para bases de datos grandes), que permite ser integrado con otras bases de datos como MySQL.
Acaban de sacar la versión 0.9.8 después de 15 meses de trabajo (y justo después de que yo ayer me bajara la versión anterior y la instalara). Existen más de 70 nuevas características, de las cuales destacaría:
Viendo diferentes empresas con página corporativa, he visto que suele ser común el área para los clientes. En este mundo es normal que el tema de los pagos suela dar complicaciones, por eso yo creo que es preferible subir lo que se va desarrollando para el cliente en un servidor propio que en el servidor del cliente, ya que hasta que no pague en su totalidad, no dispone de ello.
Si te encuentras en esta situación, quizás te sea útil este truco para habilitar una área privada protegida para los clientes, la cual redireccionará al contenido del cliente, ya sea el propio trabajo en sà o una aplicación en particular.
Para el caso del ejemplo, yo lo he hecho para unas páginas web estáticas, y luego que cada cual, si le interesa, que lo adapte a su gusto.
El funcionamiento es el siguiente: el usuario accede a una ruta con acceso restringido a usuarios válidos mediante Apache. También mediante Apache se le redirigirá a una página propia, en este caso las páginas HTML que están guardadas en un directorio especÃfico para clientes (fuera del webroot) y en un directorio especÃfico para ese cliente en concreto.
Supongamos que tenemos el directorio webroot siguiente home/www y el área web de clientes está en el directorio home/www/clientes y el espacio fÃsico especÃfico de clientes está en home/www/_clientes. Lo primero que debemos hacer es añadir el siguiente .htaccess en el directorio clientes.
AuthType Basic
AuthName "Acceso a clientes"
AuthUserFile [path]\passwords.conf
Require valid-user
RewriteEngine On
RewriteCond %{REQUEST_URI} ^/clientes(.*)$
RewriteRule ^(.*)$ /_clientes/index.php?url=$1 [L,QSA]
Lo que hace esta configuración es añadir autenticación al directorio clientes y redireccionar al script index.php del directorio _clientes, pasándole como parámetro la url a la que se accede.
El script index.php para este ejemplo, lo que he hecho ha sido incrustar el fichero que se quiere directamente, teniendo en cuenta el Content-Type y que si no se añade ninguna url después de clientes se tome por defecto el fichero index.html.
<?php
// Devuelve el content-type
function content_type($url) {
$ext = substr($url, strrpos($url, '.')+1);
if ($ext == 'swf') {
header("Content-type: application/octet-stream");
} else if ($ext == 'png') {
header("Content-type: image/png");
} else if ($ext == 'jpg') {
header("Content-type: image/jpeg");
} else if ($ext == 'gif') {
header("Content-type: image/gif");
} else if ($ext == 'js') {
header("Content-type: text/javascript");
} else if ($ext == 'css') {
header("Content-type: text/css");
} else if ($ext == 'html') {
header("Content-type: text/html");
} else {
header("Content-type: text/plain");
}
}
// Obtengo el usuario y la ruta a la que quiere acceder
$user = $_SERVER['REMOTE_USER'];
$url = substr($_SERVER['REQUEST_URI'], strlen("/clientes"));
$url = $url == '/'? '/index.html' : $url;
// Añado el content-type
content_type($url);
// Inserto el fichero
if (file_exists('./'.$user.$url)) {
include './'.$user.$url;
}
?>
Por supuesto a este truco le faltan cosas, como seguridad en el directorio _clientes, a parte de que hay que tener cuidado con los paths relativos o absolutos, y alguna cosilla más, pero creo que como idea desde la que partir no está mal.
Comments are closed.
Voy a parecer la mosca cojonera del blog, pero aún asÃ:
Se ha estado hablando mucho de los acortadores de URLs. No son buenos.
-aportan un nuevo punto de fallo
-ocultan la dirección final (no sé donde me estoy dirigiendo, podrÃa ser un sitio con fama de contener virus y otro software dañino)
en caso de que se den de baja ( http://tr.im ) lo intentó hace poco y armó una buena en la blogosfera obligándoles a rectificar
-resulta innecesario su uso en la mayorÃa de ocasiones y, como se indica en varios sitios, lo correcto es una de las siguientes dos opciones:
1) que cada sitio se gestione sus propias URLs cortas de forma que si el sitio se da de baja también se pierden las URLs cortas, pero al menos ya depende de un punto de fallo (la página en la que se publican).
2) que los sitios más importantes empiecen a ofrecer el servicio de URLs cortas como permalinks a los artÃculos. Si el script publicado aquà tiene esa finalidad, perfecto, ese serÃa el camino a seguir.
Estoy de acuerdo con alsanan, y añado otro argumento: el rendimiento. Una redirección extra significa más tiempo de espera y mayor carga para las conexiones y servidores. De hecho, la existencia de los acortadores sólo tiene sentido por cosas como Twitter –lo cual me parece una estupidez porque bien podÃa Twitter permitir poner enlaces sin ser necesario poner la URL en el texto del mensaje–, y de hecho yo ya he visto ejemplos donde se utilizan acortadores para ocultar el verdadero destino del enlace (publicitario).
No obstante, si se van a usar acortadores de URL, mejor que sean scripts conocidos y libres como el que presenta el post.
Un saludo.