Menu


Warning: Use of undefined constant nom_chapitre - assumed 'nom_chapitre' (this will throw an Error in a future version of PHP) in /home/maths/www/sio/www/cours_php/menu.php on line 7
IntroductionTableauxBouclesVariablesConditionsE/L fichierLes fonctionsRequêtes préparéesLes datesPratiquespseudo-frameSession Template
Cinque Terre

Introduction

Les fichiers entrée/sortie sont très important lors de la conception d'un projet php. On va étudier deux tp suffisant à mon avis pour un débutant en php.

TP1: Insertion massive de données

Etape 1:Création de la table qui va recevoir les enregistrements

Etape2:Préparation du fichier CSV

On crée un document tableur (animal.csv) et on saisi les données.

Attention: On doit respecter l'ordre (le même que la table animal).

 
 

Enregistrer le document sous l'extention .csv

Etape3: Préparation du formulaire d'envoi du fichier animal.csv

Appeller le : inserer0.php

Etape4: Insertion des données dans la table animal

Ce script est utile en cas de saisi en masse des données lors de l'alimentation d'une BDD.

l'insertion d'une grande quantité d’enregistrement un par un est souvent fastidieuse

TP 2:Lire et écrire dans un fichier texte

Tentons maintenant de lire et d'écrire dans un fichier texte, fichier se trouvant sur votre serveur FTP. Afin de mettre en pratique cet exercice, vous allez créer un fichier donnees.txt (permession 777) que vous allez placer dans le même répertoire que le script PHP.
Supposons que ce fichier texte contienne la ligne suivante :

"test écriture".

Soit alors, le code PHP suivant :(test1.php)

Ce qui affichera à l'écran :

Notre fichier contient : test écriture

Détaillons alors ce qui se passe :

  • Instruction 1 : on ouvre le fichier donnees.txt en lecture seule à l'aide de la fonction fopen() (la lecture seule est obtenue à l'aide du paramètre r ; nous détaillerons plus loin tous les paramètres possibles de cette fonction).
  • Instruction 2 : on lit le contenu du fichier à l'aide de la fonction fgets() et l'on place le contenu de ce fichier dans la variable $contenu_du_fichier (le paramètre 255 passé à la fonction fgets() correspond au nombre de caractères à lire : ici, on a donné 255, ce qui correspond a un choix totalement arbitraire. En effet, vous pouvez mettre n'importe quel nombre. En revanche, si vous mettez 20 et que votre fichier comporte 128 caractères, seuls les 20 premiers seront lus).
  • Instruction 3 : on referme le fichier donnees.txt à l'aide de la fonction fclose(). En effet, nous avons déjà le contenu du fichier dans la variable $contenu_du_fichier, alors le fichier ne nous intéresse plus.
  • Instruction 4 : on affiche donc le contenu du fichier donnees.txt (notez encore une fois l'utilité de la concaténation des chaînes de caractères).

Aparté
Vous n'êtes absolument pas oblige de mettre ce fichier texte dans le même répertoire que le script PHP. En effet, si votre script PHP est à la racine de votre site et que le fichier à lire se trouve dans le répertoire /toto, vous écrirez alors votre script de la manière suivante :

Ce qui produira un résultat tout a fait identique.
Etudions maintenant tous les paramètres possibles de la fonction fopen() :

  • r : ouvre en lecture seule, et place le pointeur de fichier au début du fichier.
  • r+ : ouvre en lecture et écriture, et place le pointeur de fichier au début du fichier.
  • w : ouvre en écriture seule; place le pointeur de fichier au début du fichier et réduit la taille du fichier à 0. Si le fichier n'existe pas, on tente de le créer.
  • w+ : ouvre en lecture et écriture; place le pointeur de fichier au début du fichier et réduit la taille du fichier à 0. Si le fichier n'existe pas, on tente de le créer.
  • a : ouvre en écriture seule; place le pointeur de fichier à la fin du fichier file. Si le fichier n'existe pas, on tente de le créer.
  • a+ : ouvre en lecture et écriture; place le pointeur de fichier à la fin du fichier. Si le fichier n'existe pas, on tente de le créer

Un exemple concret : un mini compteur du nombre de visites.
Créer un fichier compteur.txt que vous allez placer dans le même répertoire que le script qui va suivre. Placez le chiffre "0" dans ce fichier.
Soit alors le bout de code PHP suivant :


116