Funcionamiento en la línea de comandos
PHP Manual

Opciones de la línea de comandos

Se puede consultar en cualquier momento la lista de opciones de línea de comandos en el binario de PHP con el modificador -h :

Usage: php [options] [-f] <file> [--] [args...]
       php [options] -r <code> [--] [args...]
       php [options] [-B <begin_code>] -R <code> [-E <end_code>] [--] [args...]
       php [options] [-B <begin_code>] -F <file> [-E <end_code>] [--] [args...]
       php [options] -- [args...]
       php [options] -a

  -a               Run interactively
  -c <path>|<file> Look for php.ini file in this directory
  -n               No php.ini file will be used
  -d foo[=bar]     Define INI entry foo with value 'bar'
  -e               Generate extended information for debugger/profiler
  -f <file>        Parse and execute <file>.
  -h               This help
  -i               PHP information
  -l               Syntax check only (lint)
  -m               Show compiled in modules
  -r <code>        Run PHP <code> without using script tags <?..?>
  -B <begin_code>  Run PHP <begin_code> before processing input lines
  -R <code>        Run PHP <code> for every input line
  -F <file>        Parse and execute <file> for every input line
  -E <end_code>    Run PHP <end_code> after processing all input lines
  -H               Hide any passed arguments from external tools.
  -s               Output HTML syntax highlighted source.
  -v               Version number
  -w               Output source with stripped comments and whitespace.
  -z <file>        Load Zend extension <file>.

  args...          Arguments passed to script. Use -- args when first argument
                   starts with - or script is read from stdin

  --ini            Show configuration file names

  --rf <name>      Show information about function <name>.
  --rc <name>      Show information about class <name>.
  --re <name>      Show information about extension <name>.
  --ri <name>      Show configuration for extension <name>.

Opciones de línea de comandos
Opción Opción Larga Descripción
-a --interactive

Ejecuta PHP de forma interactiva. Para más información, consúltese la sección Consola interactiva.

-b --bindpath

Ruta Ligada en modo de servidor FASTCGI externo (sólo en CGI).

-C --no-chdir

No cambiar el directorio del script (sólo en CGI).

-q --no-header

Modo silencioso. Elimina la salida de cabeceras HTTP (sólo en CGI).

-T --timing

Calcula el tiempo de ejecución del script un número veces (sólo en CGI only).

-c --php-ini

Esta opción especifica o bien el directorio en el que buscar php.ini o bien un fichero propio INI (que no tiene porqué llamarse php.ini necesariamente), p.ej.:

$ php -c /directorio/propio/ mi_script.php

$ php -c /directorio/propio/fichero-propio.ini mi_script.php

Si no se especifica esta opción, se busca el fichero en las localizaciones por omisión.

-n --no-php-ini

Ignorar por completo el fichero php.ini.

-d --define

Esta opción permite especificar cualquier valor permitido en las directivas de configuración de php.ini. Ésta es la sintaxis:

 -d directiva_de_configuracion[=valor]
 

# Si se omite el valor, se establecerá un "1" a la directiva
$ php -d max_execution_time
        -r '$foo = ini_get("max_execution_time"); var_dump($foo);'
string(1) "1"

# Si se pasa un valor vacío, se establecerá "" a la directiva
php -d max_execution_time=
        -r '$foo = ini_get("max_execution_time"); var_dump($foo);'
string(0) ""

# Se pasará lo que haya tras el caracter '=' a la directiva de configuración
$  php -d max_execution_time=20
        -r '$foo = ini_get("max_execution_time"); var_dump($foo);'
string(2) "20"
$  php
        -d max_execution_time=doesntmakesense
        -r '$foo = ini_get("max_execution_time"); var_dump($foo);'
string(15) "doesntmakesense"

-e --profile-info

Activa el modo de información expandida, para usar con un depurador/perfilador.

-f --file

Analiza y ejecuta el fichero proporcionado en la opcíon -f . Este modificador es opcional y se puede omitir. Es suficiente con poner el nombre del fichero a ejecutar.

Note:

Para pasar parámetros a los scripts, el primer parámetro debe ser --, sino PHP los interpretará como opciones de PHP.

-h y -? --help y --usage Con esta opción, puede obtenerse información de la lista completa de opciones de línea de comandos, y algunas descripciones (en inglés) de una línea sobre lo que hacen.
-i --info Esta opción de línea de comandos invoca a phpinfo(), y muestra el resultado. Si PHP no funcionara correctamente, es aconsejable usar php -i para comprobar los mensajes de error mostrados. Tenga en cuenta que al usarse en modo CGI la saluda es en HTML y por tanto muy extensa.
-l --syntax-check

Esta opción ofrece un método conveniente para únicamente comprobar la sintaxis del código PHP. En caso de éxito, se muestra el texto No syntax errors detected in <filename> en la salida estándar y se devuelve un código de retorno 0. Si fallara, se mostraría el texto Errors parsing <filename>, además del mensaje de error de análisis correspondiente en la salida estándar, y se retornaría el código -1.

Esta opción no encuentra errores fatales (como funciones no definidas). Debe usarse -f si se desea también analizar errores fatales.

Note:

No puede usarse junto a la opción -r .

-m --modules

Example #1 Muestra los módulos PHP y Zend incorporados (y habilitados)

$ php -m
[PHP Modules]
xml
tokenizer
standard
session
posix
pcre
overload
mysql
mbstring
ctype

[Zend Modules]

-r --run

Permite ejecutar PHP desde la línea de comandos. Las etiquetas de inicio y fin (<?php y ?>) no son necesarias y provocarán un error sintáctico si estuvieran presentes.

Note:

Debe tenerse cuidado al usar PHP de esta forma con no colisionar con sustituciones de variables de línea de comandos de la propia consola.

Example #2 Obteniendo un error sintáctico usando comillas dobles

$ php -r "$foo = get_defined_constants();"
PHP Parse error:  syntax error, unexpected '=' in Command line code on line 1

Parse error: syntax error, unexpected '=' in Command line code on line 1

El problema aquí es que sh/bash lleva a cabo una sustitución de variables, incluso si estamos usando comillas dobles ". Puesto que la variable $foo no está definida, no se sustituye por nada, haciendo que el código real que se le pasa a la ejecución de PHP sea:

$ php -r " = get_defined_constants();"

La forma correcta sería usar comillas simples '. Las variables de texto en comillas simples no se sustituyen en sh/bash.

Example #3 Usando comillas simples para prevenir la sustitución de variables de la consola

$ php -r '$foo = get_defined_constants(); var_dump($foo);'
array(370) {
  ["E_ERROR"]=>
  int(1)
  ["E_WARNING"]=>
  int(2)
  ["E_PARSE"]=>
  int(4)
  ["E_NOTICE"]=>
  int(8)
  ["E_CORE_ERROR"]=>
  [...]

Si se está usando una consola diferente de sh/bash, es posible experimentar otros errores. Le animamos a enviar un informe de error a » http://bugs.php.net/. Tenga en cuenta que pueden surgir problemas fácilmente al tratar de consultar variables de la consola, o al usar el caracter barra para escapar caracteres.

Note:

-r está disponible en CLI SAPI pero no en CGI SAPI.

Note:

Esta opción está hecha teniendo un cuenta tareas muy básicas. Por eso, en este modo se ignoran algunas directivas de configuración (p.ej. auto_prepend_file o auto_append_file).

-B --process-begin

Código PHP a ejecutar antes de procesar la entrada. Añadido en PHP 5.

-R --process-code

Código PHP a ejecutar por cada línea de entrada. Añadido en PHP 5.

Hay dos variables especiales disponibles en este modo: $argn y $argi. $argn contendrá la línea que PHP está procesando en un momento dado, mientras que $argi contendrá el número de línea.

-F --process-file

Fichero PHP a ejecutar por cada línea de entrada. Añadido en PHP 5.

-E --process-end

Código PHP a ejecutar tras procesar cada línea. Añadido en PHP 5.

Example #4 Usando las opciones -B , -R y -E para contar el número de líneas de un proyecto.

$ find my_proj | php -B '$l=0;' -R '$l += count(@file($argn));' -E 'echo "Total Lines: $l\n";'
Total Lines: 37328

-s --syntax-highlight y --syntax-highlighting

Mostrar el código fuente destacando la sintaxis en color.

Esta opción utiliza los mecanismos internos de análisis del ficheros y produce una versión HTML coloreada y la muestra en la salida estándar. Tenga en cuenta todo lo que hace es generar un bloque de etiquetas HTML <code> [...] </code>, sin cabeceras HTML.

Note:

Esta opción no puede funcionar junto con la opción -r .

-v --version

Example #5 Al usar -v obtenemos el nombre de la SAPI y la versión de PHP y Zend

$ php -v
PHP 5.3.1 (cli) (built: Dec 11 2009 19:55:07) 
Copyright (c) 1997-2009 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2009 Zend Technologies

-w --strip

Mostrar código fuente sin comentarios ni líneas en blanco.

Note:

Esta opción no puede usarse junto con la opción -r .

-z --zend-extension

Carga una extensión Zend. Si sólo se proporciona un nombre de fichero, PHP trata de cargar la extensión en el directorio de bibliotecas por defecto de su sistema (normalmente se especifica en /etc/ld.so.conf en sistemas Linux). Si se proporciona un nombre de fichero con la ruta absoluta no se usarán las rutas de bibliotecas del sistema. Un nombre de fichero relativo que incluya algún directorio le indicará a PHP que sólo trate de localizar la extensión a partir del directorio actual.

  --ini

Mostra el nombre del fichero de configuración y de los directorios analizados. Disponible desde PHP 5.2.3.

Example #6 Ejemplo de --ini

$ php --ini
Configuration File (php.ini) Path: /usr/dev/php/5.2/lib
Loaded Configuration File:         /usr/dev/php/5.2/lib/php.ini
Scan for additional .ini files in: (none)
Additional .ini files parsed:      (none)

--rf --rfunction

Muestra información de la función o método proporcionado (p.ej. número y nombre de los parámetros). Disponible desde PHP 5.1.2.

Esta opción sólo está disponible si se compiló PHP con soporte para Reflection.

Example #7 Uso básico de --rf

$ php --rf var_dump
Function [ <internal> public function var_dump ] {

  - Parameters [2] {
    Parameter #0 [ <required> $var ]
    Parameter #1 [ <optional> $... ]
  }
}

--rc --rclass

Muestra información de la clase dada (lista de constantes, propiedades y métodos). Disponible desde PHP 5.1.2.

Esta opción sólo está disponible si se compiló PHP con soporte para Reflection.

Example #8 Ejemplo de --rc

$ php --rc Directory
Class [ <internal:standard> class Directory ] {

  - Constants [0] {
  }

  - Static properties [0] {
  }

  - Static methods [0] {
  }

  - Properties [0] {
  }

  - Methods [3] {
    Method [ <internal> public method close ] {
    }

    Method [ <internal> public method rewind ] {
    }

    Method [ <internal> public method read ] {
    }
  }
}

--re --rextension

Muestra información de la extensión dada (lista de opciones en php.ini, funciones definidas, constantes y clases). Disponible desde PHP 5.1.2.

Esta opción sólo está disponible si se compiló PHP con soporte para Reflection .

Example #9 Ejemplo de --re

$ php --re json
Extension [ <persistent> extension #19 json version 1.2.1 ] {

  - Functions {
    Function [ <internal> function json_encode ] {
    }
    Function [ <internal> function json_decode ] {
    }
  }
}

--ri --rextinfo

Muestra información de configuración de la extensión dada (la misma información que muestra phpinfo()). Disponible desde PHP 5.2.2. La información del núcleo está disponible usando "main" como nombre de extensión.

Example #10 Ejemplo de --ri

$ php --ri date

date

date/time support => enabled
"Olson" Timezone Database Version => 2009.20
Timezone Database => internal
Default timezone => Europe/Oslo

Directive => Local Value => Master Value
date.timezone => Europe/Oslo => Europe/Oslo
date.default_latitude => 59.930972 => 59.930972
date.default_longitude => 10.776699 => 10.776699
date.sunset_zenith => 90.583333 => 90.583333
date.sunrise_zenith => 90.583333 => 90.583333

Note:

Las opciones -rBRFEH, --ini y --r[fcei] sólo están disponibles en CLI.


Funcionamiento en la línea de comandos
PHP Manual