Langage de programmation PHP
Chapitre 1. Introduction
Chapitre 2. Variables, opérateurs et expressions
Chapitre 3. Instructions de contrôle
Chapitre 4. Tableaux
Chapitre 5. Entrées/Sorties
Chapitre 6. Réutilisation de code
Chapitre 7. Lecture/écriture de fichiers
Chapitre 8. Fonctions diverses
Chapitre 9. Sérialisation
Chapitre 10. Fonctions orientées réseau
Chapitre 11. Base de données
Chapitre 12. Manipulations d’images
Chapitre 13. Programmation objet : PHP et les classes ( PHP 4/PHP 5)
Chapitre 14. Gestion des Exceptions (PHP 5)
Chapitre 15. Contrôle de sessions
Chapitre 16. PHP - Ajax
Chapitre 17. Webservices & SOAP
Chapitre 18. PHP en chiffre
Chapitre 19. Conclusion
Chapitre 20. Bibliographie
Page d'accueilTable des matièresNiveau supérieurPage précédenteBas de la pagePage suivante

Chapitre 5. Entrées/Sorties

PHP étant un langage de script, il doit pouvoir être capable de communiquer avec son environnement. Les scripts PHP étant exécutée dans le contexte d’un navigateur Web, il est important de se rappeler que toute sortie vers le navigateur sera interprétée comme du texte HTML.

5.1 Envoi vers le navigateur
Trois fonctions permettent d’envoyer du texte vers le navigateur : echo, print et printf. L’intérêt principal de cette dernière fonction est, nous le verrons plus tard, la possibilité de spécifier un format de sortie afin d’éviter d’envoyer la valeur telle quelle.

5.2 Récupération des données d’un formulaire
Si l’envoi de données vers le navigateur est simple en utilisant les trois fonctions décrites précédemment, la récupération d’informations en provenance du navigateur l’est un peu moins.
Le langage HTML permet la récupération de données d’un formulaire : champs/zones de texte, listes déroulantes, cases à cocher, …
PHP transforme tous les champs d’un formulaire en variables ce qui permettra de modifier éventuellement leur contenu.
Soit le formulaire suivant :

<FORM ACTION="/php/myprogramme.php" METHOD="POST">
Saisissez votre nom :
<INPUT TYPE="TEXT" NAME="NOM" SIZE="20"> MAXSIZE="50" ><BR>
<INPUT TYPE="SUBMIT" VALUE="Envoyer la requête">
</FORM>

Dans le fichier myprogramme.php, il sera possible de récupérer la valeur saisie dans le champ NOM de la manière suivante :

$nom = $_POST[‘NOM’] ;

Attention, vous trouverez dans de nombreux scripts une récupération de variable de formulaire directement (print ‘’$NOM ‘’) ou via des tableaux à noms longs comme $HTTP_GET_VARS. Cette technique employée jusqu’à peu montre ses limites avec les dernières versions de PHP (et quel que soit le mode de passage des paramètres : POST, GET, cookie, session, …). La différence est que depuis la version 4.2.0, l’option register_globals du php.ini qui était positionnée par défaut à ON est à OFF. Donc, autant prendre de bonnes habitudes et utiliser la nouvelle “ technique ”. Pour vérifier la version de PHP, utilisez la fonction phpinfo() qui retourne une multitude d’informations. Ca vaut le coup d’oeil.

Voici un récapitulatif des variables et des changement selon les versions :

Avant la version 4.10 (deprecated)  Après la version 4.10
$HTTP_GET_VARS    $_GET
$HTTP_POST_VARS $_POST
$HTTP_POST_FILES   $_FILES
$HTTP_COOKIE_VARS   $_COOKIE
$HTTP_SESSION_VARS     $_SESSION
$HTTP_ENV_VARS     $_ENV
$HTTP_SERVER_VARS $_SERVER

Pour récupérer facilement les variables, vous pouvez utiliser la fonction PHP extract. Elle va exporter votre tableau associatif et créer une variable pour chaque clé du tableau.

extract($_POST,EXTR_OVERWRITE);

Cette fonction va créer une variable pour chaque clé du tableau associatif $_POST. Si l'on a :
  • $_POST['nom']
  • $_POST['prenom']
  • $_POST['age']

La fonction extract() va créer les variables suivantes :
  • $nom
  • $prenom
  • $age
Type  Signification
EXTR_OVERWRITE    Écrase les variables existantes
EXTR_SKIP    N'écrase pas les variables existantes
EXTR_PREFIX_SAME    Si une variable existe déjà, une nouvelle variable est créée avec un préfix donné en 3ème argument à la fonction
EXTR_PREFIX_ALL   Crée de nouvelles variables avec le préfix passé en 3ème argument pour toutes les clés du tableau
EXTR_PREFIX_INVALID Crée de nouvelles variables avec le préfix passé en 3ème argument pour les noms de variable invalides (par exemple $1)

                                        
5.3 Récupération des variables d’environnement

Tableau $_SERVER

  • PHP_SELF : Le nom du fichier du script en cour d'exécution, par rapport au document root.
  • SERVER_NAME : Le nom du serveur hôte qui exécute le script suivant. Si le script est exécuté sur un hôte virtuel, ce sera la valeur définie pour cet hôte virtuel.
  • DOCUMENT_ROOT : La racine sous laquelle le script courant est exécuté, comme défini dans la configuration du serveur.
  • REMOTE_ADDR : L'adresse IP du client qui demande la page courante.
  • REMOTE_PORT : Le port utilisé par la machine cliente pour communiquer avec le serveur web.
  • SCRIPT_FILENAME : Le chemin absolu jusqu'au script courant.
  • SERVER_PORT : Le port de la machine serveur utilisé pour les communications. Par défaut, c'est '80'. En utilisant SSL, par exemple, il sera remplacé par le numéro de port HTTP sécurisé.
  • REQUEST_URI : L'URI qui a été fourni pour accéder à cette page. Par exemple : '/index.html'.

Tableau $_FILE

  • [‘NOM OBJET FILE’][‘name’] : permet de récupérer le nom du fichier sélectionné dans un objet file du navigateur (exemple, fichier à télécharger).
  • [‘NOM OBJET FILE’][‘tmp_name’] : retourne le nom du fichier temporaire stocké sur le serveur, en attente de transfert à la destination désirée.
  • [‘NOM OBJET FILE’][‘size’] : retourne la taille en octet du fichier.
  • [‘NOM OBJET FILE’][‘type’] : donne le type MIME du fichier.

Page d'accueilTable des matièresNiveau supérieurPage précédenteHaut de la pagePage suivante