phpffmpeg es una clase que nos permitirá utilizar el programa ffmpeg, pudiendo así manipular y convertir vídeos.
Entre las opciones que nos ofrece, podemos convertir los formatos de vídeo, extraer frames a imágenes y juntar vídeos. Se pueden configurar varios parámetros como el formato de vídeo (entre ellos Flash vídeo), el bitrate del vídeo y el audio, las dimensiones del vídeo y el aspect ratio.
También se puede obtener información sobre el fichero, como la duración, el bitrate, el framerate, formato, tamaño, aspect ratio, si es estéreo y varios detalles más.
Para mí, uno de los mayores fracasos de Twitter es su API, una limitación de su uso increíble para algo que le podría dar mucho juego a la aplicación. Ahora mismo no sé en cuánto está el límite, pero la posibilidad de realizar una aplicación basada en Twitter es una pesadilla.
Para aquellos que no quieran sufrir lo que hemos sufrido con TwitterPoster (los espacios en blanco es porque la gente actualiza su imagen y no podemos recuperar la de todos los usuarios por el límite en el API de Twitter), les recomiendo usar Twitter mediante CURL.
Os paso un script sencillito que he realizado:
<?php
// Primer hacemos login
$url ="https://twitter.com/sessions";
$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
// Por si tienen limitación por navegador
curl_setopt($ch, curlOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.4) Gecko/20030624 Netscape/7.1 (ax)");
// Poned una ruta para las cookies
curl_setopt ($ch, CURLOPT_COOKIEJAR, '/temp/');
curl_setopt ($ch, CURLOPT_COOKIEFILE, '/temp/');
curl_setopt ($ch, CURLOPT_POSTFIELDS, "username_or_email=[usuario]&password=[contraseña]");
// Para que funcione el https
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, curlOPT_SSL_VERIFYHOST, 2);
curl_exec ($ch);
// Cargamos el home, porque Twitter añade dos campos ocultos para poder publicar por web
$url ="http://twitter.com/home";
curl_setopt($ch, CURLOPT_URL, $url);
$result = curl_exec ($ch);
// Recuperamos los campos ocultos
preg_match('//', $result, $match);
$authenticity_token = $match[1];
preg_match('//', $result, $match);
$siv = $match[1];
// Insertamos el texto
$res = $url ="http://twitter.com/status/update";
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt ($ch, CURLOPT_POSTFIELDS, 'siv='.$siv.'&authenticity_token='.$auth.'&status=[texto]');
curl_exec ($ch);
curl_close ($ch);
unset($ch);
?>
¿Qué fallo tiene este script? pues que si cambian el HTML (campos de formulario, …) o las URLs deja de funcionar, pero al menos no tenemos limitaciones. Eso sí, es más costoso para sus servidores y para los nuestros, porque en vez de hacer una llamada, hacemos 3, y en nuestro caso, a parte parseamos una página para obtener dos campos ocultos.
Movistar tiene una API para PHP muy sencillita que permite enviar SMS desde un número que tenga contrato con ellos de forma increíblmente sencilla.
Para poder enviar los SMS primero hay que darse de alta, para lo cual hay que mandar un SMS con texto ‘CLAVE’ al 22770, recibes otro SMS con una password y ya puedes enviar SMS desde tus aplicaciones, aunque eso sí, no son gratuitos y te costará lo mismo que tengas contratado.
include "APISMS.php";
$sms = new MensajeriaWeb();
$log = "6xxxxxxxx"; // Tu telefono
$pwd = "xxxxxx"; // password que te han mandado vía SMS
$dest = "6xxxxxxxx"; // telefono de destino
$msg = "texto+del+mensaje"; // Mensaje
$sms->EnviaMensaje($log, $pwd, $dest, $msg);
CodeIgniter es uno de los frameworks PHP que está siendo mejor valorado por los desarrolladores, estando totalmente de acuerdo en esto, cuanto más lo uso más cómodo me parece y más me gusta.
Hace unos dÃas sacaron a la luz su nueva versión (1.5.4), que nos presenta algunas novedades y algunos problemas resueltos, entra las que cabe destacar:
Nuevos ficheros de lenguajes personalizados para las opciones de carga automática.
Nuevos tipos de mime types.
UTF-8 como valor por defecto usado en algunas funciones.
Mejoras en la seguridad y tratamiento de los ataques XSS.
PHPCPD es una herramienta que nos permite detectar código duplicado en nuestros scripts PHP. Una utilidad muy interesante sobre todo para aquellos proyectos grandes en los que hay muchos ficheros y unos cuantos metiendo mano al código, ya que la falta de documentación o de comunicación hace que se repitan codigos en diferentes partes del proyecto, o también debido a malas prácticas a la hora de desarrollar. El código repetido hace que sea imposible de mantener y cueste horrores modificar una funcionalidad ya que hay que buscar en diversos lugares. PHPCPD
Vía / PHPDeveloper.org
AJAX Locking es una librerÃa de PHP que nos permite bloquear el acceso a los recursos del servidor a las peticiones AJAX. Ocurre con frecuencia que cuando una aplicación usa AJAX se efectuen muchas llamadas al servidor, accediendo todos a los mismos recuersos, pudiendo obtener resultados no muy deseados.
En estos casos, esta liberÃa es lo más adecuado, ya que bloquea recursos del servidor, previniendo estos errores. AJAX Locking
VÃa / PHP Classes
Uno de los problemas con los que nos podemos encontrar en WordPress con mayor frecuencia es que los plugins son tal y como el desarrollador quiere y no como a ti te gustaría, y uno de los fallos más frecuentes es el añadir scripts y styles con wp_enqueue_script o wp_enqueue_style sin tener en cuenta en qué páginas se usan sus plugins (por ejemplo Contact Form 7).
Para quitar esos .js o .css molestos y sobrantes tan sólo hay que añadir lo siguiente en nuestro functions.php (caso particular para Contact Form 7):
function mi_remove_styles() {
if (!is_page('contactar')) {
wp_deregister_style("contact-form-7");
}
}
function mi_remove_scripts() {
if (!is_page('contactar')) {
wp_deregister_script("contact-form-7");
}
}
add_action( 'wp_print_styles', 'mi_remove_styles' );
add_action( 'wp_print_scripts', 'mi_remove_scripts' );