Différence avec les autres SAPIs
Utilisation
Utilisation en ligne de commande
PHP Manual

## Options de ligne de commande

La liste des options de ligne de commande fournies par PHP est disponible à n'importe quel moment en exécutant PHP avec l'option -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>.

Options de ligne de commande
Option | Option longue | Description
--- | --- | ---
-a | --interactive | Lance PHP de façon interactive. Pour plus d'information, reportez-vous à la documentation concernant le shell intéractif.
-b | --bindpath | Lie le chemin pour les externes, en mode serveur FASTCGI (CGI uniquement).
-C | --no-chdir | Ne pas aller dans le dossier du script (CGI uniquement).
-q | --no-header | Mode silencieux. Supprime la sortie des en-têtes HTTP (CGI uniquement).
-T | --timing | Mesure le temps d'exécution du script, répété count fois (CGI uniquement).
-c | --php-ini | Cette option permet de spécifier le nom du dossier dans lequel se trouve le fichier php.ini, ou encore de spécifier un fichier de configuration (INI) directement (qui ne s'appelle pas obligatoirement php.ini) :
    $ php -c /custom/directory/ mon_script.php

    $ php -c /custom/directory/custom-file.ini mon_script.php
Si vous ne spécifiez pas cette option, le fichier est recherché dans les endroits par défaut.
-n | --no-php-ini | Ignore complètement php.ini.
-d | --define | Cette option permet de modifier n'importe quelle directive de configuration du fichier php.ini. La syntaxe est :
     -d configuration_directive[=value]
    # L'omission de la valeur conduit à donner la valeur de "1"
    $ php -d max_execution_time
            -r '$foo = ini_get("max_execution_time"); var_dump($foo);'
    string(1) "1"

    # Passer une valeur vide conduit à donner la valeur de ""
    php -d max_execution_time=
            -r '$foo = ini_get("max_execution_time"); var_dump($foo);'
    string(0) ""

    # La directive de configuration sera n'importe quelle valeur passée après le caractère '='
    $  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 | Génère des informations étendues pour le profilage et le débogage.
-f | --file | Analyse et exécute le fichier donné après l'option -f. Cette option est facultative, et peut être omise. Le seul nom du fichier est suffisant. Note: Pour passer des arguments à votre script, le premier argument doit être --, sinon, PHP les interprètera comme des options PHP.
-h et -? | --help et --usage | Avec cette option, vous pouvez obtenir des informations sur la liste courante des options de la ligne de commande, ainsi que leur description.
-i | --info | Cette option appelle la fonction phpinfo(), et affiche le résultat. Si PHP ne fonctionne pas correctement, il est recommandé d'utiliser la commande php -i et de voir s'il n'y a pas d'erreurs affichées avant ou après la table d'information. N'oubliez pas que le résultat de cette option, si vous utilisez le mode CGI, est au format HTML, et donc de taille conséquente.
-l | --syntax-check | Cette option permet de faire une vérification syntaxique sur le code PHP fourni. En cas de réussite, le message No syntax errors detected in <filename> (Littéralement, aucune erreur de syntaxe n'a été détectée dans le fichier) est affiché sur la sortie standard, et le script shell retourne 0. En cas d'erreur, le message Errors parsing <filename> (Littéralement, erreur d'analyse dans le fichier filename) est affiché, en plus des messages d'erreurs détectés par l'analyseur lui-même. Le script Shell retourne le code -1. Cette option ne détecte pas les erreurs fatales (par exemple les fonctions non définies). Utilisez -f si vous voulez tester aussi ces erreurs. Note: Cette option ne fonctionne pas avec l'option -r.
-m | --modules | Exemple #1 Affichage des modules internes (et chargés) de PHP et Zend
    $ php -m
    [PHP Modules]
    xml
    tokenizer
    standard
    session
    posix
    pcre
    overload
    mysql
    mbstring
    ctype

    [Zend Modules]
> -r | --run | Cette option permet l'exécution de PHP directement dans la ligne de commande. Les balises de PHP (<?php et ?>) ne sont pas nécessaires, et causeront une erreur d'analyse si elles sont présentes. Note: Une attention toute particulière doit être portée lors de l'utilisation de cette option de PHP, pour qu'il n'y ait pas de collision avec les substitutions de variables en ligne de commande, réalisées par le shell. Exemple #2 Erreur de syntaxe lors de l'utilisation de doubles guillemets
>     $ 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
> Le problème ici est que le shell (sh/bash) effectue une substitution de variables, même avec les guillemets doubles ". puisque la variable $foo n'est probablement pas définie dans le shell, elle est remplacée par rien, ce qui fait que le code passé à PHP pour l'exécution est :
>     $ php -r " = get_defined_constants();"
> La solution de ce problème est d'utiliser les guillemets simples '. Les variables de ces chaînes ne seront pas substituées par leurs valeurs par le shell. Exemple #3 Utilisation de guillemets simples pour éviter une substitution par le shell
>     $ 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 vous utilisez un shell différent de sh/bash, vous pouvez rencontrer d'autres problèmes. N'hésitez pas à ouvrir un rapport de bogues à » http://bugs.php.net/. Il est toujours très facile d'avoir des problèmes lorsque vous essayez d'inclure des variables shell dans le code, ou d'utiliser les antislash pour la protection. Vous aurez été prévenu. Note: -r est disponible avec le CLI SAPI et pas avec le CGI SAPI. Note: Cette option est utilisée pour des choses vraiment de base. Ainsi, quelques directives de configuration (par exemple auto_prepend_file et auto_append_file) sont ignorées dans ce mode.
-B | --process-begin | PHP code à exécuter avant le traitement de stdin. Ajouté en PHP 5.
-R | --process-code | Code PHP à exécuter pour chaque ligne en entrée. Ajouté en PHP 5. Il y a deux variables spéciales de disponibles dans ce mode : $argn et $argi. $argn doit contenir la ligne PHP traitée à ce moment donné, tandis que $argi doit contenir le numéro de la ligne.
-F | --process-file | Fichier PHP à exécuter pour chaque ligne en entrée. Ajouté en PHP 5.
-E | --process-end | Code PHP à exécuter après avoir effectué l'entrée. Ajouté en PHP 5. Exemple #4 Exemple d'utilisation des options -B, -R et -E pour compter le nombre de lignes d'un projet.
    $ find my_proj | php -B '$l=0;' -R '$l += count(@file($argn));' -E 'echo "Total Lines: $l\n";'
    Total Lines: 37328
-s | --syntax-highlight et --syntax-highlighting | Affiche le code avec la colorisation syntaxique. Cette option utilise le mécanisme interne pour analyser le fichier, et produire une version colorisée du code source, au format HTML. Notez que cette option ne fait que générer un bloc HTML, avec les balises HTML <code> [...] </code>, sans en-têtes HTML. Note: Cette option ne fonctionne pas avec l'option -r.
-v | --version | Exemple #5 Utilisation de l'option -v pour récupérer le nom du SAPI ainsi que la version de PHP et de 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 | Affiche la source sans les commentaires et les espaces. Note: Cette option ne fonctionne pas avec l'option -r.
-z | --zend-extension | Charge une extension Zend. Si et seulement si un fichier est fourni, PHP essaie de charger cette extension dans le dossier courant par défaut des bibliothèque sur votre système (généralement spécifié avec /etc/ld.so.conf sous Linux). Passer un nom de fichier avec le chemin complet fera que PHP utilisera ce fichier, sans recherche dans les dossiers classiques. Un chemin de dossier relatif indiquera à PHP qu'il doit chercher les extensions uniquement dans ce dossier.
| --ini | Affiche les noms des fichiers de configuration et des dossiers analysés. Disponible depuis PHP 5.2.3. Exemple #6 Exemple avec --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 | Affiche des informations sur la fonction donnée ou la méthode d'une classe (i.e. nombre et nom des paramètres). Disponible depuis PHP 5.1.2. Cette option n'est disponible que si PHP a été compilé avec le support Reflection. Exemple #7 Exemple avec --rf
    $ php --rf var_dump
    Function [ <internal> public function var_dump ] {

      - Parameters [2] {
        Parameter #0 [ <required> $var ]
        Parameter #1 [ <optional> $... ]
      }
    }
--rc | --rclass | Affiche des informations sur la classe donnée (liste des constantes, propriétés et méthodes). Disponible depuis PHP 5.1.2. Cette option n'est disponible que si PHP a été compilé avec le support Reflection. Exemple #8 Exemple avec --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 | Affiche les informations sur l'extension donné (liste les options du php.ini, les fonctions définies, les constantes et les classes). Disponible depuis PHP 5.1.2. Cette option n'est disponible que si PHP a été compilé avec le support Reflection. Exemple #9 Exemple avec --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 | Affiche les informations de configuration pour l'extension donnée (les mêmes informations retournées par la fonction phpinfo()). Disponible depuis PHP 5.2.2. Les informations de configurations internes sont disponibles en utilisant le nom d'extension "main". Exemple #10 Exemple avec --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: Les options -rBRFEH, --ini et --r[fcei] ne sont disponibles qu'en mode CLI.

Différence avec les autres SAPIs
Utilisation
Utilisation en ligne de commande
PHP Manual