Foros del Web » Programando para Internet » PHP »

Pasar variable con system()

Estas en el tema de Pasar variable con system() en el foro de PHP en Foros del Web. Hola, Estoy intentando bajo windows y con xampp en un servidor de pruebas ejecutar tareas en segundo plano con system() Mi intención es pasarle al ...
  #1 (permalink)  
Antiguo 30/05/2014, 04:42
Avatar de maligix  
Fecha de Ingreso: julio-2011
Ubicación: Barcelona
Mensajes: 29
Antigüedad: 12 años, 10 meses
Puntos: 2
Pasar variable con system()

Hola,

Estoy intentando bajo windows y con xampp en un servidor de pruebas ejecutar tareas en segundo plano con system()

Mi intención es pasarle al script "alertasautom.php" 2 variables y que este script realize lo que tenga que hacer en segundo plano.

He probado esto:

<?php
$provincia = 'Cuenca';
$orden = system ('php alertasautom.php $provincia &');
echo '
</pre>
<hr />Ultima linea de la salida: '. $orden.'</br>';

?>


y esto:

<?php
$provincia = 'Cuenca';
$orden = system ('php alertasautom.php $provincia >>salida.txt &');
echo '
</pre>
<hr />Ultima linea de la salida: '. $orden.'</br>';

?>


...pero no hace nada, en el archivo de salida no aparece nada y el script alertasautom.php no realiza la tarea de enviar correos, es evidente que algo estoy haciendo mal.

Gracias de antemano

Manuel
  #2 (permalink)  
Antiguo 30/05/2014, 04:59
Avatar de Eleazan  
Fecha de Ingreso: abril-2008
Ubicación: Ibiza
Mensajes: 1.879
Antigüedad: 16 años
Puntos: 326
Respuesta: Pasar variable con system()

Pregunta:

si vas a la consola, al path del proyecto (C:\xampp\htdocs\proyecto1\), y escribes esto:
Código:
php alertasautom.php Cuenca >>salida.txt &
¿Funciona? ;)
__________________
>> Eleazan's Source
>> @Eleazan
  #3 (permalink)  
Antiguo 30/05/2014, 05:55
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años, 1 mes
Puntos: 292
Respuesta: Pasar variable con system()

Tienes varios problemas, de comillas:

Código BASH:
Ver original
  1. system ('"php alertasautom.php '$provincia &'");

y recogerias tus variables con $_SERVER['argv'] en alertasautom.php


Eso suponiendo el & tambien quieras enviarlo pero tienes otro problema: asi estas cargando otra vez el interprete...... es demorado, consume recursos... si estas en PHP para que hacer eso y no un include o un redireccionamiento con header ("Location: ... ?
__________________
Salu2!
  #4 (permalink)  
Antiguo 30/05/2014, 07:16
Avatar de maligix  
Fecha de Ingreso: julio-2011
Ubicación: Barcelona
Mensajes: 29
Antigüedad: 12 años, 10 meses
Puntos: 2
Respuesta: Pasar variable con system()

Cita:
Iniciado por Eleazan Ver Mensaje
Pregunta:

si vas a la consola, al path del proyecto (C:\xampp\htdocs\proyecto1\), y escribes esto:
Código:
php alertasautom.php Cuenca >>salida.txt &
¿Funciona? ;)
No funciona,

php no se reconoce como un comando interno o externo. Programa o archivo por lotes ejecutable


y...
quiere decir que no se puede hacer esto en windows?
  #5 (permalink)  
Antiguo 30/05/2014, 07:20
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 10 años, 10 meses
Puntos: 379
Respuesta: Pasar variable con system()

eso es por que necesitas agregar la ruta donde se encuentra php a la variable path de windows
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.
  #6 (permalink)  
Antiguo 30/05/2014, 07:21
Avatar de maligix  
Fecha de Ingreso: julio-2011
Ubicación: Barcelona
Mensajes: 29
Antigüedad: 12 años, 10 meses
Puntos: 2
Respuesta: Pasar variable con system()

Cita:
Iniciado por Italico76 Ver Mensaje
Tienes varios problemas, de comillas:

Código BASH:
Ver original
  1. system ('"php alertasautom.php '$provincia &'");

y recogerias tus variables con $_SERVER['argv'] en alertasautom.php


Eso suponiendo el & tambien quieras enviarlo pero tienes otro problema: asi estas cargando otra vez el interprete...... es demorado, consume recursos... si estas en PHP para que hacer eso y no un include o un redireccionamiento con header ("Location: ... ?
Que representa "&", lo puse porque asi lo vi en un script.
Respecto a tu pregunta lo que quiero es que trabaje en segundo plano pues el script "alertasautom.php" se encargará de enviar un montón de emails y me consumiría seguro mucho tiempo es decir más de 30 segundos.
Lo suyo es utilizar cron jobs pero de momento estoy en windows y haciendo pruebas en local.
  #7 (permalink)  
Antiguo 30/05/2014, 08:21
Avatar de Eleazan  
Fecha de Ingreso: abril-2008
Ubicación: Ibiza
Mensajes: 1.879
Antigüedad: 16 años
Puntos: 326
Respuesta: Pasar variable con system()

Cita:
Iniciado por hhs Ver Mensaje
eso es por que necesitas agregar la ruta donde se encuentra php a la variable path de windows
+1! ;)

O bien, ejecutar php.exe desde el path completo.

O hacer un bat en ese directorio para ejecutar php!
__________________
>> Eleazan's Source
>> @Eleazan
  #8 (permalink)  
Antiguo 30/05/2014, 08:37
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años, 1 mes
Puntos: 292
Respuesta: Pasar variable con system()

Pues tiene varios problemas:

- El %PATH%

- Las comillas simples que haran que envie a PHP '$provincia &' ya que al momento de pasar pos system() no ve la variable como variable

- Ese & que es pura basura que envia sin saber para que (aunque no le afecte)
__________________
Salu2!
  #9 (permalink)  
Antiguo 30/05/2014, 08:49
Avatar de Eleazan  
Fecha de Ingreso: abril-2008
Ubicación: Ibiza
Mensajes: 1.879
Antigüedad: 16 años
Puntos: 326
Respuesta: Pasar variable con system()

Cita:
Iniciado por Italico76 Ver Mensaje
- Ese & que es pura basura que envia sin saber para que (aunque no le afecte)
Yo creo que lo que necesita es usar el comando START con /B... pero.. shh! ;)
__________________
>> Eleazan's Source
>> @Eleazan
  #10 (permalink)  
Antiguo 30/05/2014, 10:11
Avatar de maligix  
Fecha de Ingreso: julio-2011
Ubicación: Barcelona
Mensajes: 29
Antigüedad: 12 años, 10 meses
Puntos: 2
Respuesta: Pasar variable con system()

Lo solucioné, le cambié el path, gracias por vuestra ayuda.

Etiquetas: variable
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 01:18.