Librería SSH para PHP
Para aquellos que quieran desarrollar una aplicación que tenga acceso mediante SSH, le vendrá bien esta librería, aunque con la limitación de que sólo admite SSH1. Esto puede ser un impedimento, pero la librería que hay para SSH2 es PECL, lo cual también puede ser un impedimento a la hora de instalar.
require_once ('ssh_in_php.php');
$host = "127.0.0.1";
$port = 22;
$user = "user";
$password = "pass";
try {
$ssh = new SSH_in_PHP($host,$port);
$ssh->connect($user,$password);
$cycle = true;
while ($cycle) {
$data = $ssh->read();
echo $data;
if (ereg('\$',$data)) {
$cycle = false;
}
}
$ssh->write("ls -al\n");
$cycle = true;
while ($cycle) {
$data = $ssh->read();
echo $data;
if (ereg('\$',$data)) {
$cycle = false;
}
}
$ssh->disconnect();
} catch (SSHException $e) {
echo "An Exception Occured: {$e->getMessage()} ({$e->getCode()})\n";
echo "Trace: \n";
echo print_r($e->getTrace());
echo "\n";
}
Interesante estudio sobre comparativa de sentencias en PHP5 que obtienen el mismo resultado, para conocer cual de ellas es la más rápida. Por ejemplo: es más rápido concatenar una cadena a una variable usando el punto (.) que incluyéndo la variable entre comillas dobles, para expresiones regulares es más rápido usar preg_match que eregi, es 8 veces más rápido usar explode que split. También es una buena referencia para saber como hacer lo mismo de distintas formas. Pero lo que más me ha sorprendido es que comparando con PHP4 las expresiones regulares se han vuelto más lentas (casi 7 veces más rápido en PHP4 que en PHP5), lo cual me hace pensar que o bien es debido a una mejora que completa las expresiones regulares, o antes no se hacÃan muy bien, porque ir a peor no tiene mucho sentido.