PHP Manipulation des fichiers ouverture et lécture

La manipulation des fichiers est une nécessité de base pour les programmeurs PHP sérieux ; elle vous donne beaucoup d'outils pour créer, télécharger et modifier les fichiers.

Cette section du tutorial PHP est entièrement consacré à la façon dont PHP peut interagir avec des fichiers. Après avoir terminé cette section, vous devriez avoir une bonne compréhension de tous les types de manipulation de fichiers en PHP!

PHP cours tutorial

PHP ouverture et lecture des fichiers


La fonction fopen ( ) est utilisé pour ouvrir des fichiers en PHP.


Ouverture d'un fichier

La fonction fopen( ) est utilisé pour ouvrir des fichiers en PHP.

Syntaxe :

$file=fopen("fichier.txt","r");

Le premier paramètre de la fonction fopen( ) contient le nom du fichier à ouvrir et le second paramètre spécifie le mode dans lequel le fichier doit être ouvert:

Les différentes façons d'ouvrir un fichier en php

Pour de nombreuses différentes raisons techniques, PHP nécessite que vous indiquiez vos intentions lorsque vous ouvrez un fichier. Voici les trois façons d'ouvrir un fichier et le caractère correspondant utilisé en PHP.

Lire: 'r'
Ouvrir un fichier en lecture seule. Le pointeur de fichier commence au début du fichier.

Ecrire: 'w'
Ouvrir un fichier pour écrire seulement. En outre, les données dans le fichier sont effacées et on va commencer l'écriture des données au début du fichier. Le pointeur de fichier commence au début du fichier.

Ajouter: 'a'
Ouvrir un fichier pour écrire seulement. Toutefois, les données du fichier sont conservées et vous commencez à écrire les données à la fin du fichier. Le pointeur de fichier commence à la fin du fichier.

Un pointeur de fichier est une façon de se souvenir de l’emplacement du curseur dans un fichier PHP. Lorsque vous ouvrez un fichier pour la lecture, le pointeur de fichier commence au début du fichier. C'est logique, car habituellement pour la lecture des données on commence à partir du début du fichier.

Toutefois, lorsque vous ouvrez un fichier en ajout, le pointeur de fichier est à la fin du fichier, vu que le plus probable sera l'ajout de données à la fin du fichier. Lorsque vous utilisez des fonctions pour la lecture ou l'écriture, les fonctions commencent à l'endroit indiqué par le pointeur de fichier.

Explication des différents types de fopen

Ces trois méthodes de base pour ouvrir un fichier ont des buts distincts. Si vous souhaitez obtenir des informations à partir d’un fichier, comme la recherche dans un e-book d’occurrences pour un formatage par exemple, alors vous ouvrez le fichier en lecture seule.

Si vous souhaitez écrire un nouveau fichier ou écraser un fichier existant, alors vous allez ouvrir le fichier avec l'option "w". Cela effacera toutes les données existantes dans le fichier.

Si vous vouliez ajouter un information à votre fichier , alors vous l'ouvrirez pour ajouter les données à la fin. Ce serait l'option "a" qui doit être utilisée.

Ouvrir le fichier en lecture et écriture en PHP:

Il ya d'autres façons d'ouvrir un fichier. Ci-dessus nous avons indiqué les moyens classiques d'ouvrir un fichier. Cependant, vous pouvez ouvrir un fichier de telle sorte que la lecture et l'écriture soient permises en même temps! Cette combinaison se fait en plaçant un signe "+" après le caractère de mode de fichier.

Lecture / Ecriture: 'r +'
Ouvre un fichier pour la lecture et l’écriture. Le pointeur de fichier se trouve au début du fichier.

Ecrire / lire: 'w +'
C'est exactement la même chose que r +, sauf qu'il supprime toutes les informations dans le fichier lorsque le fichier est ouvert.

Ajouter (append): 'A +'
C'est exactement la même chose que r +, sauf que le pointeur de fichier est à la fin du fichier.

php - ouvrir un fichier syntaxe générale :

Ci-dessous est la forme correcte pour ouvrir un fichier avec PHP. Remplacez le (Mode) avec l'une des options ci-dessus (c.-R, W, A, etc.)

code PHP:

$NomFichier = "testFile.txt"; $Fh = fopen ($NomFichier, 'Mode') or die ("Impossible d'ouvrir le fichier"); fclose ($fh);

Modes

Descriptif

r

Lecture seule. Commence au début du fichier

r +

Lecture / Ecriture. Commence au début du fichier

w

Écriture seule. Ouvre et efface le contenu du fichier, ou crée un nouveau fichier s'il n'existe pas

w +

Lecture / Ecriture. Ouvre et efface le contenu du fichier, ou crée un nouveau fichier s'il n'existe pas

a

Ajouter. Ouvre et écrit à la fin du fichier ou crée un nouveau fichier s'il n'existe pas

a +

Lecture / Ajouter. Préserve le contenu du fichier en écrivant à la fin du fichier

x

Lecture  seule. Crée un nouveau fichier. Retourne FALSE et une erreur si le fichier existe déjà

x +

Lecture / Ecriture. Crée un nouveau fichier. Retourne FALSE et une erreur si le fichier existe déjà

Remarque: Si la fonction fopen ( ) est incapable d'ouvrir le fichier spécifié, elle retourne 0 (false).

Exemple

L'exemple suivant génère une erreur si la fonction fopen ( ) est incapable d'ouvrir le fichier spécifié:

Sélectionner le code

              <html>
              <body>
              
              <?php
              $file=fopen("fichier.txt","r") or exit("Le fichier demandé ne
              peut être ouvert ou est inexistant!");
              ?>
              
              </body>
              </html>
            
 

Création confuse

En PHP, un fichier est créé en utilisant la même commande qui est utilisé pour ouvrir les fichiers. Ce qui sembler un peu confus, mais nous allons essayer de clarifier cette énigme.

En PHP de la fonction fopen est utilisé pour ouvrir les fichiers. Cependant, il peut aussi créer un fichier si elle ne trouve pas le fichier spécifié dans l'appel de la fonction.

Donc, si vous utilisez la fonction fopen sur un fichier qui n'existe pas, il sera crée, étant donné que vous ouvrez le fichier en écriture ou en ajoutant .

Comment créer un fichier en PHP

La fonction fopen a besoin de deux informations importantes pour fonctionner correctement comme nous l’avons vu en haut. Premièrement, nous devons lui fournir le nom du fichier que nous voulons ouvrir. Deuxièmement, nous devons dire à la fonction ce que nous prévoyons de faire avec ce fichier (c-à-d lire à partir du fichier ou écrire des informations, etc.)

Puisque nous voulons créer un fichier, il faut fournir un nom de fichier et indiquer à PHP que nous voulons écrire dans le fichier.

NOTE: Nous devons dire à PHP que nous écrivons dans le fichier, sinon il sera impossible de créer un nouveau fichier.
Code PHP: Sélectionner le code

		 $NomFichier = "testFile.txt";
		 $FichierHandle = fopen ($NomFichier, 'w') or die ("impossible d'ouvrir le fichier");
		 fclose ($FichierHandle);
		
 

Le fichier "testFile.txt" devrait être créé dans le même répertoire où ce code PHP réside. PHP va voir que "testFile.txt" n'existe pas et le créera après l'exécution de ce code. Il ya beaucoup d'informations dans ces trois lignes de code, assurons-nous que vous le comprenez.

$NomFichier = "testFile.txt";

Ici, nous créons le nom de notre fichier, "testFile.txt" et nous le stockons dans une variable chaîne PHP $NomFichier.

$FichierHandle = fopen ($NomFichier, 'w') or die ("impossible d'ouvrir le fichier");

Ce bout de code a en fait deux parties. D'abord, nous utilisons la fonction fopen et lui donner deux arguments: le nom de notre fichier et nous informons PHP que nous voulons écrire en passant le caractère "w".

Deuxièmement, la fonction fopen retourne ce qu'on appelle un descripteur de fichier, ce qui nous permettra de manipuler le fichier. Nous stockons le descripteur de fichier dans la variable $FichierHandle.

fclose ($FichierHandle);

Ici nous fermons le fichier qui a été ouvert. Fclose prend en paramètre le descripteur du fichier qui doit être fermé.

php – permissions

Si vous en essayant d' exécuter ce programme, vous rencontrez des erreurs, vérifiez les droit d’accès que vous avez accordé à votre dosier PHP pour écrire des informations sur le disque dur. Définition d'autorisations est le plus souvent fait avec l'utilisation d'un logiciel FTP pour exécuter une commande appelée chmod. Utilisez la commande chmod pour permettre à PHP d’écrire sur le disque, permettant ainsi de créer un fichier. Si ça ne marche toujours pas alors demander à votre fournisseur de service internet (hébergeur) si vous avez ce droit ?.


Fermeture d'un fichier

La prochaine étape logique après avoir ouvert un fichier et fini votre travail dessus, est de clore ce fichier. Vous ne voulez pas qu’un fichier reste ouvert tout le temps sur votre serveur en prenant les ressources et cause des préjudices!

En PHP, il n'est pas nécessaire de fermer tous vos fichiers après leur utilisation car le serveur va fermer tous les fichiers après la fin de l'exécution du code PHP.

Cependant, le programmeur peut toujours faire des erreurs (par exemple modification d'un fichier que vous avez accidentellement oublié de fermer) .

Vous devez donc fermer tous les fichiers lorsque vous avez terminé de travailler avec, parce que c'est une bonne pratique de programmation

et parce que nous vous l'avons dit!!! LOL

La fonction fclose ( ) est utilisée pour fermer un fichier ouvert:

Sélectionner le code

              <?php
              $file = fopen("test.txt","r");
              
              // code à exécuter
              
              fclose($file);
              ?>
            
 

Note : Une fois qu'un fichier a été fermé avec fclose il est impossible de lire, d'écrire ou d’ajouter à ce fichier si il n'est une fois de plus ouvert avec la fonction fopen().

Vérifier la Fin de fichier

La fonction feof() vérifie si la "fin de fichier" (EOF) a été atteint.

La fonction feof ( ) est utile pour faire des boucles à travers les données d’un fichier de longueur inconnue.

Remarque: Vous ne pouvez pas vérifier les fichiers ouverts en mode W, A, et  X

Sélectionner le code

              if (feof($file)) echo "Fin du fichier";
            
 


Lecture d'un fichier ligne par ligne

La fonction fgets ( ) est utilisé pour lire une seule ligne à partir d'un fichier.

Remarque: Après un appel à la fonction fgets ( )  le pointeur de fichier est déplacé à la ligne suivante.

Exemple

L'exemple ci-dessous lit un fichier ligne par ligne, jusqu'à ce que la fin du fichier est atteinte:

Sélectionner le code

              <?php
              $file = fopen("fichier.txt", "r") or exit("Le fichier demandé ne
              peut être ouvert ou est inexistant!!");
              // Sortir d'une ligne du fichier lorsque la fin est
              atteinte
              while(!feof($file))
                {
                echo fgets($file). "<br />";
                }
              fclose($file);
              ?>
            
 


Lecture d'un fichier caractère par caractère

La fonction fgetc ( ) est utilisé pour lire un seul caractère d'un fichier.

Remarque: Après un appel à la fonction fgetc ( ) le pointeur se déplace vers le prochain caractère.

Exemple 1 :

L'exemple ci-dessous lit un fichier caractère  par caractère,  jusqu'à ce que la fin du fichier soit atteinte et compte le nombre des lettres « e » dans le texte :

Sélectionner le code

              <?php
              $file=fopen("welcome.txt","r") or exit("Le fichier ne peut être
              ouvert ou est inexistant !");
              $i=0;
              while (!feof($file))
                {
                if (fgetc($file)=="e") $i=$i+1;
                }
                echo "il y a ".$i." e dans le texte de ce fichier";
              fclose($file);
              ?>
            
 

Exemple 2 :

L'exemple ci-dessous lit un fichier caractère  par caractère,  jusqu'à ce que la fin du fichier soit atteinte et calculee le nombre de caractéres dans le texte :

Sélectionner le code

              <?php
              $file=fopen("welcome.txt","r") or exit("Le fichier ne peut être
              ouvert ou est inexistant !");
              $i=0;
              while (!feof($file))
                {
                if (fgetc($file)) $i=$i+1;
                }
                echo "il y a ".$i." caractéres dans le texte de ce fichier";
              fclose($file);
              ?>
            
 


Par carabde 20 Aout 2014