mangels:
Desde hace mucho tiempo he tenido la necesadad de hacer lo que tu deseas y despues de una cantidad interminable de consultas, busquedas, ideas, ext; encontre algo que me ayudo.
El proceso es el siguiente ->
Realizar un CRON sin utilizar ningun programa CRON, valga la redundancia, NI php como CLI; aunque usted no lo crea aqui te va el detalle.
1.- Haces una archivo activar.php que contenga los siguiente:
<?php
//Abrir una conexion socket hacia cron.php
// $_SERVER['HTTP_HOST'] = 123.456.789.012 (micaso)
$abrirsocket = fsockopen($_SERVER['HTTP_HOST'],80,$errorno,$errorstr,10);
if($abrirsocket) {
$datossocket = "GET /CRONFRanco/CronRevolucionario/cron.php HTTP 1.1\r\n";
$datossocket .= "Host: ".$_SERVER['HTTP_HOST']."\r\n";
$datossocket .= "Connection: Close\r\n\r\n";
fwrite($abrirsocket,$datossocket);
//Normalmente se obtiene toda la Data con fgets y se espera hasta que $socket llega al feof(End of file).
//En este caso solo hacemos esto->
fclose($abrirsocket);
} else {
echo "Hubo Error";
}
?>
2.- Aqui abrimos un socket hacia un archivo que se llamara cron.php e
inmediatamente cerramos el socket. Y cerramos el navegador y de alguna
manera increible has creado un cron cuyas limitantes son:
max_execution_time del php.ini
Ahora bien, si el php.ini contiene esta variable con valor 0; entonces no hay problema y el codigo que te pondre a continuacion correra por dias o meses siempre y cuando todo este encendido.
3.- El cron.php que yo tengo instalado para prueba que lo puedes modificar a tu antojo es el suiguiente->
<?php
set_time_limit(0);
$tiempo = 12000;
for($w = 0; $w < $tiempo; $w++) {
sleep(3);
include("mail.php");
}
?>
OJO -> este codigo, como consecuencia de un BUG o mas bien maravillas de php queda correindo exactamente como un cron.
Puedes probarlo con $tiempos = 20; y sleep(2); y te debera enviar 20 correos
que estan incluidos en el mail.php en 60 segundos o un minuto.
NUEVAMENTE TU LO MODIFICAS A TUS NECESIDADES.
4.- Mi archivo mail.php contiene lo siguiente ->
<?php
$email = "
[email protected]";
$asunto = "Esto Es Una Prueba";
$mensaje = "Estamos probando este novedoso sistema de cron de franco!!!.";
mail($email, $asunto, $mensaje);
?>
OJO -> este archivo lo puedes modificar para que $email lo saue de un archivo de trexto o de una base de datos.
Saludos
Y espero te sirva
Franco
![sonriente](http://static.forosdelweb.com/fdwtheme/images/smilies/smile.png)
![Afirmando](http://static.forosdelweb.com/fdwtheme/images/smilies/afirmar.gif)
![sonriente](http://static.forosdelweb.com/fdwtheme/images/smilies/smile.png)
P.S. OJO-> Con Windows solo pude detener el cron apagando el Apache o identificando el task o ID de proceso y matarla con un taskkill. De otra manera no se puede detener.
Ten mucho cuidado que No vayas a crear un LOOP o bucle interminable.
P:S OJO2-> Esto funciona dentro del area del servidor por tanto puedes tener acceso desde Internet; es decir lo puedes activar remotamente y aqui va lo mas importante y delicado: ES TREMENDAMENTE PELIGROSO QUE UN INTRUSO SE DE CUENTA DE ESTO Y TE HAGA DAÑO A TI Y A TU PROVEEDOR DE SERVIDIOS DE INTERNET; manejalo con precaucion.