domingo, 25 de abril de 2010

Ejecutar procesos en PHP (Windows)

Después de mucho tiempo sin escribir nada voy a hacerlo con una pequeña pero útil prestación de php.

El proceso que voy a realizar aquí va dedicado para Windows mediante COM, que a resumidas cuentas un objeto COM permite la comunicación entre procesos dando igual el lenguaje, implementación, etc desde donde proceda.

Veamos un ejemplo:


Supongamos que necesito ejecutar dede php un script también escrito en php.
Podría hacerlo mediante una redirección desde el navegador que apuntase al script que necesito ejecutar, ¿pero qué ocurre si no deseo que se ejecute por la salida del navegador y sea como un proceso independiente?, pues ahí radica el kid de la cuestión. Necesitamos ejecutar un script como si se tratase de un proceso independiente del sistema donde ejecutamos el servidor web.

Estableciendo el escenario.
Nuestro script se va a encargar de rastrear un sitio web completo en busca de direcciones de correo electrónico.
Por un lado, tenemos el script que se encargará de realizar la llamada al script que se ejecutará como proceso independiente pasándole como parámetro le URL del sitio web a rastrear.

lanzadera.php


A continuación el script que procesa la petición para buscar emails

buscas_emails.php


El resto del código te lo dejo pendiente para que lo finalices, pero la idea es:
  • Tener un formulario de entrada donde recibir por GET la dirección del sitio web a rastrear.
  • Realizar la llamada al script que se va a ejecutar como un proceso independiente
  • Tras realizar la llamada, rastrear el sitio web completo en busca de todos los emails
  • Los emails encontradros los almacenamos en memoria mediante un vector
  • Finalizado el rastreo del servidor, volcamos todos los emails encontrados en un fichero en el sistema
  • Mediante Ajax, realizar un seguimiento del fichero donde se encuentran todos los emails para comprobar si tal fichero tiene o no contenido. En caso de tenerlo mostrarlo


Espero te sirva de utilidad y completes el ejemplo satisfactoriamente!

No hay comentarios:

Publicar un comentario