|

Minishowcase: galería PHP y Ajax

Minishowcase es una aplicación sencilla basada en PHP y Ajax que nos permite crear galerías de fotos facilmente, sin necesidad de configurar bases de datos o cambiar código.
minishowcase.png
Tan solo es necesario situar las fotografías en un directorio y ya dispondremos de un album, sin necesidad de crear thumbnails ya que Minishowcase se encarga de ello.
Disponible en varios idiomas, nos muestra las imágenes mediante lightbox y nos permite visualizarlas mediante un slideshow. A parte podemos compartir las galerías mediante enlaces permanentes.
Minishowcase
Vía / WebAppers

Subir un fichero por FTP en PHP

El código que nos muestran es sencillo, se trata de subir un fichero mediante un formulario a un servidor FTP, para lo cual será necesario CURL.

Inicialmente necesitaremos el formulario html:

<form action="ftpupload.php" method="post" enctype="multipart/form-data">
<div>
<label for="upload">Selecciona un fichero</label>
<input name="upload" type="file" />
<input type="submit" name="submit" value="Enviar" />
</div>
</form>

Recordad que es importante que el enctype sea multipart/form-data para que se pueda enviar el fichero al servidor.

Una vez tenemos este formulario, deberemos tener el fichero ftpupload.php el cual deberá ejecutar lo siguiente:

if (isset($_POST['submit'])) {
if (!empty($_FILES['upload']['name'])) {
$ch = curl_init();
$localfile = $_FILES['upload']['tmp_name'];
$fp = fopen($localfile, 'r');
curl_setopt($ch, CURLOPT_URL, 'ftp://usuario:password@ftp.servidor.com/'.$_FILES['upload']['name']);
curl_setopt($ch, CURLOPT_UPLOAD, 1);
curl_setopt($ch, CURLOPT_INFILE, $fp);
curl_setopt($ch, CURLOPT_INFILESIZE, filesize($localfile));
curl_exec ($ch);
$error_no = curl_errno($ch);
curl_close ($ch);
if ($error_no == 0) {
$error = 'Fichero subido correctamente.';
} else {
$error = 'Error al subir el fichero.';
}
} else {
$error = 'Seleccione un fichero.';
}
}

Tutorial: FTP Upload via cURL

|

phpEquiMon: monitorizar equipos de forma remota

phpEquiMon está pensado para los administradores de redes para tener y mantener una base de datos de equipos basados en IP, pudiendo guardar el hostname, la dirección IP, la MAC address y mucho más. Además ofrece características que facilitan la labor al administrador y permite a gente sin conocimiento técnico hacer un seguimiento del estado de los equipos.
phpequimon.png
Entre las características que ofrece nos encontramos con la posibilidad de personalizar las tablas de resultados, sistema de usuarios y grupos, monitorización online haciendo pings frecuentes, logs, temas, LDAP y mucho más.
phpEquiMon
Vía / International PHP Magazine

Creación de thumbnails con Imagick

Un buen y sencillo ejemplo de cómo crear miniaturas de imágenes (thumbnails) con sombra y borde redondeado usando Imagick. No olvidar que siempre hay que tener en cuenta que la manipulación de imágenes es algo costoso en rendimiento, y más si usamos Imagick en vez de gd, sí, permite más funcionalidades pero es más pesado.

El resultado sería el siguiente:

resize.png

<?php
// Parsear la imagen
$im = new Imagick( 'imagen.png' );
// Redimensionar la imagen
$im->thumbnailImage( 200, null );
// Esquinas redondeadas
$im->roundCorners( 5, 5 );
// Clonamos el objeto actual
$shadow = $im->clone();
// Cambiamos el color de la imagen a negro (color de la sombra)
$shadow->setImageBackgroundColor( new ImagickPixel( 'black' ) );
// Creamos la sombra
$shadow->shadowImage( 80, 3, 5, 5 );
// Superponemos la original sobre la sombra
$shadow->compositeImage( $im, Imagick::COMPOSITE_OVER, 0, 0 );
// Mostramos la imagen
header( "Content-Type: image/png" );
echo $shadow;
?>

Pretty thumbnails

|

Juntion PHP: capa de persistencia de datos

junction.pngJuntion PHP es una capa de persistencia de datos desarrollada por la gente de Zend. Para aquellos que no les suene qué es una capa de persistencia de datos, diremos que se trata de una capa intermedia en nuestra aplicación que ofrece servicios de persistencia
y recuperación de información a las capas superiores.
Junction mapea la base de datos a objetos, permitiendo al desarrollador concentrarse en otros detalles de la aplicación. Debido a ello no nos tendremos que preocupar más en las sentencias CRUD.
Además de lo dicho anteriormente, Junction por ahora permite cláusulas WHERE sencillas, configuración de la base de datos, capa DAO, tests y buena documentación ya sea en el código como para el usuario final.
Juntion PHP
Vía / PHPDeveloper.org

FUDforum: sistema de foros en PHP

FUDforum es un sistema de foros open source, creado en PHP4 que permite la creación de páginas de foros de forma muy rápida. A su vez, la instalación es muy sencilla, siendo necesario tan solo modificar el script de instalación.

fudforum.png

Dispone de muchas características que hacen que este sistema sea muy completo. Nos encontramos con:

  • Corrector ortográfico
  • Sistema de plantillas
  • i18n
  • ACL
  • Mensajes privados
  • Ficheros adjuntos
  • Vista estructurada
  • Búsqueda de texto
  • Emoticonos
  • Avatares
  • Etiquetas
  • Censores
  • y mucho más

FUDforum

Agilizar tus aplicaciones PHP con la elección correcta de funciones

Hay muchos consejos para agilizar tus scripts de PHP, pero en este caso se concentran en el uso de funciones y sus funciones alias. Por lógica la llamada a una función será más rápida que la llamada a una función alias, salvo en un caso que la verdad me sorprende.

Los porcentajes que se muestran son reales, pero quizás no sean perceptibles, ya que el uso de estas funciones puede ser mínimo en un desarrollo, pero bueno, si algo de tiempo obtenemos, mejor que mejor.

Las funciones son las siguientes:

  • sizeof y count: count es un 12% más rápida.
  • is_int y is_integer: is_int es un 9% más rápida.
  • chop y rtrim: rtrim es un 7% más rápida.
  • doubleval y floatval: floatval es un 4% más rápida.
  • fwrite y fputs: fputs es un 23% más rápida, esta es la comparativa que me sorprende, porque fputs es alias de fwrite. Que alguien me lo explique, ¿una diferencia del 23%? o no son alias o el ejemplo está mal medido.
  • implode y join: implode es un 5% más rápida.
  • ini_alter y ini_set: ini_set es un 19% más rápida.

7 tips for lightning fast PHP sites

Vogoo PHP Lib: motor para recomendaciones

Vogoo PHP Lib es un motor para filtros de recomendaciones/colaboraciones que puedes integrar en tu sistema. Gracias a esta librería podrás añadir características del tipo: “la gente a la que le gusta este artículo también le gusta…”. Es fácil de usar y con unas simples líneas de código se puede realizar el filtrado de artículos.
En su versión 2.0, los módulos se han reorganizado para mejorar la consistencia del código, a parte de añadir un módulo de estadísticas. Diseñado para que trabaje con varios sistemas de bases de datos aunque solo ha sido probado con MySQL y PostgreSQL.
Entre las características que ofrece nos encontramos con un motor de predicción de puntuaciones de usuarios, calculo de similitud entre usuarios, múltiples categorías, puntuaciones automáticas basadas en páginas vistas y muchas cosas más. Existe una versión PRO que tiene optimizado el motor de filtro.
Vogoo PHP Lib
Vía / International PHP Magazine

| |

Hacer login a Google Adsense con PHP

Un ejemplo para conectarnos a Google Adsense usando cURL, usa a parte de cookies, el USER AGENT y las cabeceras REFERRER HTTP headers.

<?php
// Descomentar solo para admitir cierta IP
// if($_SERVER['REMOTE_ADDR'] !== '1.1.1.1') die();
$usuario=urlencode('myemail@gmail.com');
$password="micontraseña";
$gacookie="./.gacookie";
$postdata="Email=$usuario&Passwd=$password&GA3T=5AS_gBsvDHI&nui=15&fpui=3"
."&service=adsense&ifr=true&rm=hide&itmpl=true&hl=en_US&alwf=true&continue=https://www.google.com/adsense/report/overview&null=Sign in";
$ch = curl_init();
curl_setopt ($ch, CURLOPT_URL,"https://www.google.com/accounts/ServiceLoginBoxAuth");
curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt ($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6");
curl_setopt ($ch, CURLOPT_TIMEOUT, 60);
curl_setopt ($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch, CURLOPT_COOKIEJAR, $gacookie);
curl_setopt ($ch, CURLOPT_COOKIEFILE, $gacookie);
curl_setopt ($ch, CURLOPT_REFERER, 'https://www.google.com/adsense/report/overview');
curl_setopt ($ch, CURLOPT_POSTFIELDS, $postdata);
curl_setopt ($ch, CURLOPT_POST, 1);
$result = curl_exec ($ch);
curl_close($ch);
echo $result;
unlink($gacookie);
exit;
?>

Login to Google AdSense using PHP

Rapid: librerías para CodeIgniter

rapid.pngRapid es un conjunto de librerías para el framework CodeIgniter que nos ayuda a desarrollar nuestras aplicaciones de forma rápida.
Es necesaria la version 1.5.4 de CodeIgniter para poder utilizarla, y gracias a esta librería podremos un GUI para datos de forma rápida, tener un modo estándar de desarrollar tus backends, no tener que usar librerías que necesiten configuración, realizar aplicaciones sin PEAR, uso de temas y mucho más.
Si ya CodeIgniter es uno de los mejores frameworks para PHP que existen, Rapid puede ser una ayuda más para desarrollos rápidos.
Rapid
Gracias David