PHP : Configuration

Auteur·rice

La base

La configuration utilisée par PHP peut être définie à différents niveaux, certains paramètres pouvant être écrasés par les couches supérieures (php.ini, host, htaccess, etc…).

Pour obtenir des détails sur la configuration courante, il suffit de passer par phpinfo :

<?php
phpinfo();

Superglobales

Il existe en PHP des variables superglobales.

La superglobale $GLOBALS encapsule toutes les autres dans un tableau. Si une modification est effectuée sur une autre superglobale, elle sera répercutée dans l’élément correspondant à l’intérieur de $GLOBALS.

Les autres superglobales :

Clé* Variable Contenu CLI
S $_SERVER Infos sur le serveur et sur l’environnement d’exécution. Ces informations sont transmises à PHP par Apache. Il n’est pas garanti d’y trouver les informations voulues (dépendant du serveur). Données différentes
G $_GET Paramètres transmis par le client dans l’URL (typiquement en GET, mais pas toujours) indisponible
P $_POST Paramètres transmis par le client dans le corps (typiquement par un formulaire en POST) indisponible
$_FILE Comme $_POST, mais pour les fichiers transmis par formulaire indisponible
C $_COOKIE Cookie retransmis par le client en HTTP indisponible
$_SESSION Informations stockées sur le serveur par des appels à d’autres scripts précédemment (et uniquement si une session a été démarrée). indisponible
$_REQUEST Fusion de plusieurs autres superglobales (par défaut : $_GET, $_POST et $_COOKIE, mais cela peut être configuré avec l’élément de configuration request_order)
E $_ENV Contient les éventuelles variables d’environnements transmises à PHP (depuis un fichier de configuration, par exemple). Si $_ENV n’est pas activée, ces variables sont toujours disponibles via la fonction $var = getenv();

* clés utilisées par certains éléments de configurations. Voir plus bas.

Configurations PHP utiles

Configurations PHP utiles pouvant être utilisées sur tout un serveur (php.ini), un site (vhost) ou un dossier (.htaccess) :

Configuration Infos Code
request_order

Définit dans quel ordre les superglobales sont fusionnées à l’intérieur de $_REQUEST.

Si non défini, utilise variables_order.

Si une même clé existe dans plusieurs superglobales, la dernière (à droite) l’emporte.

# usually set to
request_order = "GPC"
variables_order Définit quelles superglobales seront définies et dans quel ordre.
# usually set to
variables_order = "EGPCS"