php - tutorial - todo sobre elasticsearch
PHP-Cómo hacer que los errores de Shell se repitan en la pantalla (1)
Los datos de error se emiten desde el flujo STDERR
del programa de STDERR
. Puede obtener acceso a los datos de error a través de la cadena normal devuelta desde shell_exec()
agregando 2>&1
al comando, que redireccionará STDERR
a STDOUT
, la secuencia que está viendo actualmente:
var_dump(shell_exec("ffmpeg -i /var/www/html/sitedomain/httpdocs/tmp/ebev1177.mp4 2>&1"));
También puede querer echar un vistazo a proc_open()
que le permitirá acceder a STDIN
, STDOUT
y STDERR
como tres flujos individuales, que pueden permitir un control más STDERR
del programa objetivo y exactamente cómo maneja la entrada y la salida. para ello, incluida la redirección de cualquiera y todos ellos directamente a un archivo de registro, si así lo desea. Sin embargo, tenga en cuenta que este es un mecanismo mucho más complejo, con muchas trampas y peligros de tropiezos.
Más información sobre las corrientes estándar se puede encontrar here .
Estoy en el proceso de usar shell_exec()
por primera vez. Estoy tratando de convertir algunos archivos de video en mi servidor usando el script de shell ffmpeg.
Cuando el código de abajo en el navegador, devuelve NULL:
var_dump(shell_exec("ffmpeg -i /var/www/html/sitedomain/httpdocs/tmp/ebev1177.mp4"));
Sin embargo, cuando ejecuto el código equivalente en mi terminal:
> ffmpeg -i /var/www/html/sitedomain/httpdocs/tmp/ebev1177.mp4
Recupero toda una carga de información útil que termina con un error "At least one output file must be specified"
¿Por qué esta información no se transfiere a mi script PHP para que pueda hacer eco?