Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] script php en programador de tareas

Estas en el tema de script php en programador de tareas en el foro de PHP en Foros del Web. Buenas, tengo creado un script en php (accede a una base de datos y manda un email con cierta información, no necesito visualizar nada). Me ...
  #1 (permalink)  
Antiguo 06/06/2018, 02:14
 
Fecha de Ingreso: enero-2002
Ubicación: Sabadell
Mensajes: 565
Antigüedad: 22 años, 3 meses
Puntos: 4
script php en programador de tareas

Buenas, tengo creado un script en php (accede a una base de datos y manda un email con cierta información, no necesito visualizar nada). Me gustaría programar diariamente una tarea para ejecutarlo.

He buscado por Internet y he encontrado lo siguiente, para ejecutar en un .bat:
- iexplore.exe http://localhost/programa.php: abre Internet Explorer y no me hace falta
- c:/xampp/php/php.exe -r "http://localhost/programa.php" se ejecuta, pero no recibo el email

Si ejecuto http://localhost/programa.php en el navegador funciona correctamente.

Alguna sugerencia.
Gracias
__________________
Qué fácil cuando lo sabes y qué difícil cuando no
  #2 (permalink)  
Antiguo 06/06/2018, 03:11
 
Fecha de Ingreso: noviembre-2003
Ubicación: Zaragoza, España
Mensajes: 1.257
Antigüedad: 20 años, 5 meses
Puntos: 154
Respuesta: script php en programador de tareas

Hola mblascog,

En los servidores Linux se coloca la ruta absoluta, tipo usuario/public_html/carpeta/script.php, yo probaría a colocar la ruta desde c://xamp/htdocs/programa.php, quedando algo así:

c:/xampp/php/php.exe -r c://xamp/htdocs/programa.php

Aunque quizá tengas que adaptar las rutas... Aparte, asegúrate de que tienes instalado un servidor de correo en tu máquina, si no, no te mandará el e-mail, obviamente.
  #3 (permalink)  
Antiguo 06/06/2018, 04:02
 
Fecha de Ingreso: enero-2002
Ubicación: Sabadell
Mensajes: 565
Antigüedad: 22 años, 3 meses
Puntos: 4
Respuesta: script php en programador de tareas

Buenas y gracias por ayudarme. He probado con la ruta absoluta y nada.
Me ha descolocado el tener que tener un servidor de correo instalado en el servidor. A qué te refieres exactamente? Yo parto de la idea que si ejecutando el script en el navegador funciona, también debería de funcionar ejecutándolo desde un .bat. Me equivoco?

Gracias
__________________
Qué fácil cuando lo sabes y qué difícil cuando no
  #4 (permalink)  
Antiguo 06/06/2018, 10:28
 
Fecha de Ingreso: abril-2006
Mensajes: 583
Antigüedad: 18 años
Puntos: 120
Respuesta: script php en programador de tareas

Cita:
Iniciado por mblascog Ver Mensaje
Buenas y gracias por ayudarme. He probado con la ruta absoluta y nada.
Me ha descolocado el tener que tener un servidor de correo instalado en el servidor. A qué te refieres exactamente? Yo parto de la idea que si ejecutando el script en el navegador funciona, también debería de funcionar ejecutándolo desde un .bat. Me equivoco?

Gracias
estas algo equivocado, si es ovio que en teoria se podria, recuerda que un servidor con APACHE y PHP como modulo de este, tiene ciertas librerias extras o que faltan, en cambio si se ejecuta PHP en modo CLI osea desde consola, igual tiene otras librerias y tambien hacen falta algunas otras que solo tiene el PHP y APACHE, si tu script que envia emails, no tiene bien definido,o es muy dependiente de algunas caracteristicas, este no te funcionara,

y en la linea de comando que te pusieron de ejemplo esta mal, ya que tiene un argumento "-r" el cual indica que acepta CODIGO PHP inlinea osea

c:/xampp/php/php.exe -r "echo time();"

si quieres saber que argumentos soportan, casi todos los programas para CLI, muestra una lista de argumentos con "-h","--help" ,"/h","/?"

lo correcto para ejecutar el script es esto
c:/xampp/php/php.exe c:/xamp/htdocs/programa.php

un detalle muy importante, es que tambien al hacer uso de la linea de comandos, si usas INCLUDE en tus scripts y no tienes control sobre las RUTAS ABSOLUTAS te dara errores de que no encuentra los archivos de tu script

por eso es siempre recomendable hacer uso de
Código:
<?php
require __DIR__ .'/un_archivo_necesario.php';
en lugar de
Código:
<?php
require 'un_archivo_necesario.php';
casi todos tiene tropiezos con ello
--------
y otra alternativa, es que crees un script aparte que desde CLI es que crees en php un script que revise la web cada X minutos

Código:
<?php
$url='http://localhost/programa.php';
$cada_x_minuto= 10;//ejecutara el script cada 10 minutos
while(true){
    sleep($cada_x_minuto*60);
    echo "Ostias tio que voy a ejecutar $url\n";
    $tmp = file_get_contents($url);
    echo "Y me la web me devolvio esto\n$tmp";
}
  #5 (permalink)  
Antiguo 07/06/2018, 01:07
 
Fecha de Ingreso: enero-2002
Ubicación: Sabadell
Mensajes: 565
Antigüedad: 22 años, 3 meses
Puntos: 4
Respuesta: script php en programador de tareas

tuadmin, muy agradecida. No conocía __DIR__. Funciona el script. Muchísimas gracias
__________________
Qué fácil cuando lo sabes y qué difícil cuando no

Etiquetas: funcion, programador, tareas
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:36.