start session_start pasar paginas entre ejemplos ejemplo php windows exec

pasar - session_start php ejemplos



php exec() no está ejecutando el comando (2)

He intentado usar exec() con ''whoami'' para verificar si funciona y obtuve el resultado de

nt authority/system

Ahora necesito ejecutar un archivo .exe con parámetros de php través de la función exec() .

Intenté esto en el símbolo del sistema y realmente ejecuta el programa con los parámetros dados. Este es el comando de ejemplo.


NOTA: el archivo exe obtiene 3 entradas (carpeta, nombre_archivo, archivo_informe_nmaee)

> ../../some_file.exe folder="C:/path_to_folder" param=1.xml report=2.xml

Pero cuando ejecuto este comando desde el archivo php :

exec(''../../some_file.exe folder="C:/path_to_folder" param=1.xml report=2.xml'');

nada esta pasando. Esta es la primera vez que uso la función exec (), por lo que no estoy familiarizado con sus detalles. ¿Qué está mal?

Intenté usar:

  • // lugar de /
  • escapeshellarg() en el directorio
  • añadido "" alrededor de los nombres de las carpetas del directorio

Sin suerte

Apéndice:

echo exec($command) // echos < .... why?

o

exec($command, $output); print_r($output); // Array()

Incluso cambié el permiso del archivo para tener el control total de todos los usuarios. Si llamo al programa desde el command prompt del command prompt , puedo ver el ícono que aparece al lado del reloj por un segundo.

Pero la misma llamada de php ni siquiera llamará al programa.

Editar

Incluso exec(''notepad.exe''); no está trabajando. ¿Algo hay que hacer con las configuraciones de php tal vez?


También puede intentar dar la ruta completa al binario que intenta ejecutar. Eso resolvió mi problema al intentar usar ImageMagick .


Ya dije que era nuevo en la función exec() . Después de hacer más excavaciones, encontré 2>&1 que debe agregarse al final del comando en exec() .

Gracias @mattosmat por señalarlo en los comentarios también. No intenté esto de una vez porque dijiste que es un comando de Linux, estoy en Windows.

Entonces, lo que he descubierto, el comando se está ejecutando en el back-end. Es por eso que no pude verlo en funcionamiento, lo que esperaba que sucediera.

Para todos ustedes que tuvieron un problema similar, mi consejo es usar ese comando. Señalará todos los errores y también le informará información / detalles sobre la ejecución.

exec(''some_command 2>&1'', $output); print_r($output); // to see the response to your command

Gracias por toda la ayuda chicos, lo aprecio;)