PHP : Gestion des Fichiers M. BOUMEDIENE Institut National des Télécommunicatio

PHP : Gestion des Fichiers M. BOUMEDIENE Institut National des Télécommunications et des Technologies de l’Information et de la Communication e-mail: mboumediene[at]inttic.dz xx 2021 1/23 Mohammed Boumediene - INTTIC Technologies web 2 Plan 1 Lecture/Écriture rapide de fichiers 2 Ouverture d’un fichier 3 Manipuler les fichiers 4 Manipuler les répertoires 2/23 Mohammed Boumediene - INTTIC Technologies web 2 Lecture/Écriture rapide de fichiers Plan 1 Lecture/Écriture rapide de fichiers 2 Ouverture d’un fichier 3 Manipuler les fichiers 4 Manipuler les répertoires 3/23 Mohammed Boumediene - INTTIC Technologies web 2 Lecture/Écriture rapide de fichiers Lecture rapide Les applications web peuvent avoir besoin d’accéder aux fichiers. Que ce soit pour sauvegarder un contenu, le lire ou le supprimer. La fonction file_get_contents lit un fichier et retourne son contenu dans une chaîne de caractères En cas d’erreur, file_get_contents retourne false Exemple du fichier "myFile.txt" qui contient la chaîne de caractère "Hello World". Le script suivant affiche le contenu de "myFile.txt" $myFile = file_get_contents ( ' myFile . t x t ' ) ; echo $myFile ; La fonction file lit le contenu d’un fichier et le retourne dans un tableau (array) Chaque élément du tableau correspond à une ligne du fichier En cas d’erreur, file retourne false $ l i n e s = f i l e ( ' myFile . t x t ' ) ; foreach ( $ l i n e s as $line_num = > $ l i n e ) { echo " Line $line_num : $ l i n e <br >"; } 4/23 Mohammed Boumediene - INTTIC Technologies web 2 Lecture/Écriture rapide de fichiers Écriture rapide La fonction file_put_contents écrit des données dans un fichier Les données peuvent être de type chaîne de caractères, tableau, ou ressource file_put_contents retourne le nombre d’octets écrits En cas d’erreur, file_put_contents retourne false A l’aide d’un paramètre flags, il est possible de définir le contexte d’écriture : FILE_APPEND : ajouter les données à la fin du fichier et ne pas écraser LOCK_EX : Appliquer un verrou exclusif sur le fichier durant l’écriture. Dans ce cas, le fichier ne peut être lu par d’autre processus Le script suivant écrase le contenu de "myFile.txt". Le contenu sera ", how are you ?" f i l e _ p u t _ c o n t e n t s ( ' myFile . t x t ' , ' , how are you ? ' ) ; Le script suivant ajoute ", how are you ? " à la fin du fichier. Le contenu sera "Hello World, how are you ?" f i l e _ p u t _ c o n t e n t s ( ' myFile . t x t ' , ' , how are you ? ' , , →FILE_APPEND) ; 5/23 Mohammed Boumediene - INTTIC Technologies web 2 Ouverture d’un fichier Plan 1 Lecture/Écriture rapide de fichiers 2 Ouverture d’un fichier 3 Manipuler les fichiers 4 Manipuler les répertoires 6/23 Mohammed Boumediene - INTTIC Technologies web 2 Ouverture d’un fichier La fonction fopen La fonction fopen crée une ressource représentant un pointeur de fichier Plusieurs modes d’ouverture sont possible pour fopen Mode Description ’r’ lecture seule, et le pointeur de fichier sera placé au début du fichier. ’r+’ lecture et écriture, et le pointeur de fichier sera placé au début du fichier. ’w’ écriture seule, et le pointeur de fichier sera placé au début du fichier et réduit la taille du fichier à 0. Si le fichier n’existe pas, il sera crée. ’w+’ lecture et écriture, et le pointeur de fichier sera placé au début du fichier et réduit la taille du fichier à 0. Si le fichier n’existe pas, il sera crée. ’a’ écriture seule, et le pointeur de fichier sera placé à la fin du fichier. Si le fichier n’existe pas, il sera crée. ’a+’ lecture et écriture, et le pointeur de fichier sera placé à la fin du fichier. Si le fichier n’existe pas, il sera crée. ’x’ crée et ouvre le fichier en écriture seulement. Si le fichier existe, fopen retourne false. ’x+’ crée et ouvre le fichier en lecture et écriture. Si le fichier existe, fopen retourne false. $myFile2 = fopen ( " . / myFile2 . t x t " , ' a+' ) ; 7/23 Mohammed Boumediene - INTTIC Technologies web 2 Ouverture d’un fichier Lecture caractère par caractère La fonction fgetc lit un caractère du fichier et le retourne en une chaine de caractères (qui contient un seul caractère). Après chaque lecture, la position du pointeur de lecture est avancée d’un pas. En cas d’erreur, fgetc retourne false Arrivé à la fin du fichier, fgetc retourne aussi false. L’exemple suivant affiche tous les caractères du fichier "myFile.txt" à l’aide d’une boucle while. Dés qu’il n’y a plus aucun caractère à lire, fgetc retourne false et la condition de la boucle while ne sera plus vérifiée. $myFile = fopen ( ' myFile . t x t ' , ' r ' ) ; i f ( ! $myFile ) { echo ' I m p o s s i b l e to open myFile . t x t ' ; } while ( ( $char = f getc ( $myFile ) ) !== f a l s e ) { echo " $char " ; } 8/23 Mohammed Boumediene - INTTIC Technologies web 2 Ouverture d’un fichier Lecture ligne par ligne La fonction fgets lit la ligne courante (selon la position du pointeur du fichier) et la retourne dans une chaîne de caractères. En cas d’erreur, fgets retourne false Arrivé à la fin du fichier, fgets retourne aussi false. L’exemple suivant affiche toutes les lignes du fichier "myFile.txt" à l’aide d’une boucle while. Dés qu’il n’y a plus aucune ligne à lire, fgets retourne false et la condition de la boucle while ne sera plus vérifiée. $myFile2 = fopen ( ' myFile2 . t x t ' , ' r ' ) ; i f ( ! $myFile2 ) { echo ' I m p o s s i b l e to open myFile2 . t x t ' ; } while ( ( $ l i n e = f g e t s ( $myFile2 ) ) !== f a l s e ) { echo " $ l i n e <br >"; } 9/23 Mohammed Boumediene - INTTIC Technologies web 2 Ouverture d’un fichier Lecture ligne par ligne (la suite) Il est possible de préciser le nombre d’octets à lire. Dans ce cas, à la sortie de la boucle while, il faut vérifier si la fin du fichier a été atteinte EOF. La fonction feof permet d’effectuer cette vérification. Après les opérations de lecture/écriture, il ne faut pas oublier de fermer le fichier à l’aide de fclose. $myFile2 = fopen ( ' myFile2 . t x t ' , ' r ' ) ; i f ( ! $myFile2 ) { echo ' I m p o s s i b l e to open myFile2 . t x t ' ; } e l s e { while ( ( $ l i n e = f g e t s ( $myFile2 ,4096) ) !== f a l s e ) { echo " $ l i n e <br >"; } i f ( ! f e o f ( $myFile2 ) ) { echo " E r r o r : f g e t s f a i l e d " ; } f c l o s e ( $myFile2 ) ; } 10/23 Mohammed Boumediene - INTTIC Technologies web 2 Ouverture d’un fichier Lecture avec fread() La fonction fread lit un nombre d’octets passé en argument et retourne une chaîne de caractères. En cas d’erreur, fread retourne false echo "<h2>fread :</h2 >"; $myFile2 = fopen ( ' myFile2 . t x t ' , ' rb ' ) ; i f ( ! $myFile2 ) { echo ' I m p o s s i b l e to open myFile2 . t x t ' ; } e l s e { $content = fread ( $myFile2 , f i l e s i z e ( ' myFile2 . t x t ' ) ) ; echo nl2br ( $content ) ; f c l o s e ( $myFile2 ) ; } 11/23 Mohammed Boumediene - INTTIC Technologies web 2 Ouverture d’un fichier Écriture avec fwrite() La fonction fwrite écrit le contenu d’une chaîne de caractères dans un fichier. fwrite retourne le nombre d’octets écrits. En cas d’erreur, fwrite retourne false Le script suivant ouvre le fichier "myFile2.txt" en mode ’a+’ et ajoute à la fin du fichier la chaîne "I enjoyed learning PHP. ". Ainsi que la chaîne "After the basics, now I’m learning advanced features". $myFile2 = fopen ( ' myFile2 . t x t ' , ' a ' ) ; i f ( ! $myFile2 ) uploads/Litterature/ php-gestion-fichiers.pdf

  • 43
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager