Foros del Web » Programando para Internet » PHP »

ejecutar php

Estas en el tema de ejecutar php en el foro de PHP en Foros del Web. Como puedo ejecutar un archivo php desde php estoy usando esto pero no me funciona shell_exec('php /var/www/html/cron.php');...
  #1 (permalink)  
Antiguo 31/10/2020, 05:43
 
Fecha de Ingreso: junio-2012
Ubicación: En el Mundo
Mensajes: 759
Antigüedad: 11 años, 10 meses
Puntos: 10
ejecutar php

Como puedo ejecutar un archivo php desde php

estoy usando esto pero no me funciona

shell_exec('php /var/www/html/cron.php');

Última edición por xoceunder; 31/10/2020 a las 09:56
  #2 (permalink)  
Antiguo 31/10/2020, 13:17
Avatar de ArturoGallegos
Moderador
 
Fecha de Ingreso: febrero-2008
Ubicación: Morelia, México
Mensajes: 6.774
Antigüedad: 16 años, 1 mes
Puntos: 1146
Respuesta: ejecutar php

un php desde otro PHP basta con usar include o include_once segun tus necesidades
  #3 (permalink)  
Antiguo 01/11/2020, 07:28
 
Fecha de Ingreso: junio-2012
Ubicación: En el Mundo
Mensajes: 759
Antigüedad: 11 años, 10 meses
Puntos: 10
Respuesta: ejecutar php

estoy usando esto en cron.php

con esto require_once("../cron.php"); y include("../cron.php");

Código PHP:
Ver original
  1. $mysqli = new mysqli($DB_HOST,$DB_USER,$DB_PASS,$DB_NAME);
  2. $fecha = time();
  3. $result = $mysqli->query("SELECT * FROM epg") or die($mysqli->error);
  4. while ($rEPG = $result->fetch_array(MYSQLI_ASSOC)) {
  5.  
  6.   $fecha_update = $rEPG['last_updated'];
  7.   $fecha_limit  = strtotime("- ".$rEPG['days_keep']." days");
  8.   if($fecha_update < $fecha_limit) {
  9.     // si se ha superado la fecha de entrega
  10.     echo "Ya no tiene garantia";
  11.     $mysqli->query("DELETE FROM epg_data WHERE epg_id='".$rEPG['id']."'") or die($mysqli->error);
  12.     $mysqli->query("UPDATE epg SET last_updated='$fecha' WHERE id='".$rEPG['id']."'") or die($mysqli->error);
  13.     $xml = LoadEpg($rEPG['epg_file']);
  14.     foreach ($xml->programme as $item) {
  15.             $channel_id = (string) $item->attributes()->channel;
  16.             $start = strtotime(strval($item->attributes()->start));
  17.             $stop = strtotime(strval($item->attributes()->stop));
  18.             $title = base64_encode($item->title);
  19.             $description = base64_encode($item->desc);
  20.             $channel_id = addslashes($channel_id);
  21.             $date_start = date('Y-m-d H:i:s', $start);
  22.             $date_stop = date('Y-m-d H:i:s', $stop);
  23.             $list[] = '(\'' . $rEPG['id'] . '\', \'' . $channel_id . '\', \'' . $date_start . '\', \'' . $date_stop . '\', \'' . $title . '\', \'' . $description . '\')';
  24.     }
  25.     $values =  implode(',',$list);
  26.     $mysqli->query("INSERT INTO epg_data (epg_id, channel_id, start, end, title, description) VALUES $values") or die($mysqli->error);
  27.   }
  28.    
  29. }
  30.  
  31. $mysqli->close();

y lo quiere ejecutarlo
  #4 (permalink)  
Antiguo 02/11/2020, 00:55
Avatar de ArturoGallegos
Moderador
 
Fecha de Ingreso: febrero-2008
Ubicación: Morelia, México
Mensajes: 6.774
Antigüedad: 16 años, 1 mes
Puntos: 1146
Respuesta: ejecutar php

Y cual es el problema que tienes?

Explica mas detalladamente el error que te arroja o el problema en cuestión

La verdad veo tu codigo y no entiendo cual es el fallo o que es lo que no te funciona.
  #5 (permalink)  
Antiguo 02/11/2020, 13:56
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: ejecutar php

Yo veo 3 problemas serios:

1. Estás leyendo toda la tabla en lugar de filtrar directamente los registros que cumplen con la condición de fecha. Supongo que debe haber una opción para realizar el cálculo desde la consulta, pero no soy muy diestro en el tema y, aparte, se necesitaría ver la estructura de la tabla para poder sugerir algo.

2. Eliminas los elementos vencidos (aparentemente está bien), pero no, porque luego los insertas nuevamente, ¿no bastaría con actualizar los campos necesarios?

3. Al insertar usas la variable $list, pero no está inicializada previamente, por lo que vas a tener un montón de registros duplicados. Esto se podría solucionar con $list = []; antes del foreach().
__________________
- León, Guanajuato
- GV-Foto

Etiquetas: Ninguno
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 12:23.