Puedes obtener acceso a la lista de opciones proveida por PHP ejecutando PHP con el -hswitch:
Usage: php [options] [-f] <file> [args...]
php [options] -r <code> [args...]
php [options] [-- args...]
-s Display colour syntax highlighted source.
-w Display source with stripped comments and whitespace.
-f <file> Parse <file>.
-v Version number
-c <path>|<file> Look for php.ini file in this directory
-a Run interactively
-d foo[=bar] Define INI entry foo with value 'bar'
-e Generate extended information for debugger/profiler
-z <file> Load Zend extension <file>.
-l Syntax check only (lint)
-m Show compiled in modules
-i PHP information
-r <code> Run PHP <code> without using script tags <?..?>
-h This help
args... Arguments passed to script. Use -- args when first argument
starts with - or script is read from stdin
|
Aunque los resultados anteriores siempre serán dados en ingles, a continuación te daré una lista que probablemente sera muy útil:
Usage: php [options] [-f] <file> [args...]
php [options] -r <code> [args...]
php [options] [-- args...]
-s Display colour syntax highlighted source.
(colorear el sintaxis en el código)
-w Display source with stripped comments and whitespace.
(remueve los comentarios y espacios del código)
-f <file> Parse <file>.
(analiza <file>)
-v Version number
(la versión de PHP que estas usando)
-c <path>|<file> Look for php.ini file in this directory
(usa el php.ini archivo localizado aquí)
-a Run interactively
(interactivo)
-d foo[=bar] Define INI entry foo with value 'bar'
(define foo con el valor 'bar' en php.ini)
-e Generate extended information for debugger/profiler
(genera mas información para el debugger/profiler)
-z <file> Load Zend extension <file>.
(inicia las exenciones Zend <archive>)
-l Syntax check only (lint)
(Mira al sintaxis (lint))
-m Show compiled in modules
(muestra los módulos compilados)
-i PHP information
(información PHP)
-r <code> Run PHP <code> without using script tags <?..?>
(ejecuta PHP <code> sin usar las tags <?..?> en el script
-h This help
(estas opciones)
args... Arguments passed to script. Use -- args when first argument
starts with - or script is read from stdin
(Argumentos pasados al programa. Usa -- args cuando el primer
argumento empieza con - o tu programa es leído directamente desde stdin)
|
El CLI SAPI tiene tres diferentes maneras de obtener el código PHP que tu quieres ejecutar:
Puedes decir a PHP que ejecute ciertos archivos.
php my_script.php php -f my_script.php
En estos dos ejemplos (aunque utilices el switch -f o no) ejecutan el archivo my_script.php. Tu puedes escoger cualquier archivo para ejecutar - tus programas PHP no tienen que terminar con la exención .php y pueden tener cualquier otra exención tu desees.
Pasa el código PHP para que sea ejecutado directamente en la línea de comando.
php -r 'print_r(get_defined_constants());'
Debes tener cuidado en reguardo a las substituciones variables en tu línea de comando y usando comillas(").
Nota: Deves ponerle atención al ejemplo, y notaras que no tiene tags ni al principio ni al final, el comando -r simplemente no las usa. Usando las tags te dará un error cuando trates de ejecutar el programa.
Provee el código PHP para ejecutar por medio de stdin
Esto te da la habilidad de dinámicamente crear código PHP y mandarlo al programa, como por ejemplo a continuación:$ some_application | some_filter | php | sort -u >final_output.txt
Tu no puedes combinar ninguna de las tres formas de ejecutar el código.
Como cualquier aplicación ejecutada en la línea de comando, el PHP binario acepta un numero de argumentos y tu programa también puede recibir argumentos. El numero de argumentos que pueden ser pasados a tu programa no es limitado por PHP (la línea de comando tiene limitaciones en el numero de símbolos que pueden ser pasados; usualmente tu nunca alcanzarías este limite). Los argumentos pasados a tu programa, están disponibles en tu array global$argv. El índex cero ("0") siempre contiene el nombre de tu programa (que es - en caso de código que esta viniendo por medio del input estándar, o del switch en la línea de comando -r. La segunda variable global registrada es $argcy contiene el numero de elementos en el array $argv (no el numero de argumentos pasados as programa).
Mientras el argumento que tu quieres pasas a tu programa no comienza con -, no tienes que esperar por nada especial. Pero si el argumento empieza con -, te puede generar problemas, por que PHP pensara que tiene que procesarlo. Para prevenir esto, usa la lista separadora de argumentos: --. Después de que el separador a sido procesado, cada siguiente argumento es pasado sin tocar a tu programa.
# This will not execute the given code but will show the PHP usage
# Esto no ejecutara el código pero PHP mostrara el uso
$ php -r 'var_dump($argv);' -h
Usage: php [options] [-f] <file> [args...]
[...]
# This will pass the '-h' argument to your script and prevent PHP from showing it's usage
# passaremos el argumento '-h' a tu programa y prevenira que PHP demuestre su uso
$ php -r 'var_dump($argv);' -- -h
array(2) {
[0]=>
string(1) "-"
[1]=>
string(2) "-h"
}
|
Pero, existe otra manera de usar PHP en la línea de comando. Tu puedes escribir un programa donde la primera línea empieza con #!/usr/bin/php (donde /usr/bin/php es la locación de php). Después de esto, tu puedes usar PHPcomún y corriente. Una vez que tu le as dado permiso de ejecución a tu programa (por ejemplo +x test) tu programa puede ser ejecutado como si fuera digamos un programa en perl:
#!/usr/bin/php |
Asumiremos que el archivo es llamado test, y esta en el mismo directorio en el cual to estas, en ese caso, podemos hacer lo siguiente.
$ chmod 755 test
$ ./test -h -- foo
array(4) {
[0]=>
string(6) "./test"
[1]=>
string(2) "-h"
[2]=>
string(2) "--"
[3]=>
string(3) "foo"
}
|
Como puedes ver, en este caso no atención es dada a pasar los parámetros que comiensen con - en tu programa.





No response to “Usando PHP desde la línea de comando II”
Publicar un comentario