phpRemoteShell es una aplicación que permite ejecutar comandos de shell y código PHP en un host remoto sobre HTTP.
Además permite encriptarse y desencriptarse en la petición, PRS se puede alojar a sà mismo en en otro script PHP del servidor para poder restablecerse durante el tiempo de ejecución. Ademas permite modificar el crontab entre otras cosas. phpRemoteShell
VÃa / International PHP Magazine
El ranking de Alexa es uno de los más famosos que hay, y es bastante utilizado a la hora de vender publicidad u otros aspectos comerciales. Dispone de un API que permite obtener el ranking de una web, por lo que podemos hacer una llamada y obtener los datos para poder mostrarlos en nuestra web.
La clase es muy sencilla:
class AlexaRank {
public function getRequestUri($domain) {
return 'http://data.alexa.com/data?cli=10&dat=s&url=' . $domain;
}
public function parse( $httpResponse ) {
preg_match( '#<popularity url="(.*?)" text="([0-9]+){1,}">#si', $httpResponse, $p );
$res = ( $p[2] ) ? number_format( intval($p[2]) ):0;
return str_replace(',', '', $res);
}
}
Hoy tengo unas cuantas preguntas. El otro día un amigo me preguntaba qué usar para hacer la web de un cliente que le pedía entre otras cosas un foro, blog, eventos, … Mi primer pensamiento fue para Drupal, pero hay un plugin para WordPress que te permite un foro, hay otro para eventos, … Total, que le di unas cuantas vueltas al asunto de hacer webs y pensé que normalmente la gente piensa en WP únicamente para blogs y poca cosa más, pero creo que actualmente se puede usar para la mayoría de las webs que se hacen. Hay que pensar que la mayoría de las webs tienen pocas funcionalidades.
Por eso me pregunto, ¿para que usar Joomla o Drupal? Sinceramente no me gusta nada Joomla, y aunque Drupal es bastante bueno, desarrollar para WordPress me parece más sencillo, me gustan los hooks y la facilidad de los plugins.
Ya hace tiempo hable lo de los websockets con HTML, los cuales solo se pueden usar en Safari, Chrome y la beta de Firefox 4, pero además el servidor necesita que los soporte. Para poder usarlos en nuestras aplicaciones PHP se puede hacer un apaño con la siguiente librería:
SecureImage es un CAPTCHA realizado en PHP (necesario GD) que nos permite evitar el abuso del spam protegiéndonos de sus ataques.
Es muy fácil de usar, ya que en solo 3 líneas de código te muestra la imagen o valida la entrada en 6 líneas de código. Permite seleccionar el juego de caracteres, la fuente TTF o fuentes GD, permite añadir imagenes de fondo, modificar el color, el ángulo y la transparencia del código, añadir líneas que tachen la imagen o generar ficheros wav con el CAPTCHA audible. SecureImage PHPDeveloper.org
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.