PHP – manipulation de fichiers

par | Sep 16, 2021 | PHP, Web | 0 commentaires

Manipulation de fichiers

Les modes d’ouvertures

Les mode d’ouverture de la fonction fopen()

modeDescription
'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 ; le comportement est le même que pour 'w'.
'a'Ouvre en écriture seule ; place le pointeur de fichier à la fin du fichier. Si le fichier n’existe pas, on tente de le créer. Dans ce mode, la fonction fseek() n’a aucun effet, les écritures surviennent toujours.
'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. Dans ce mode, la fonction fseek() n’affecte que la position de lecture, les écritures surviennent toujours.

Fonctions

FonctionDescription
$fichier = fopen(« chemin du fichier », « mode »)Ouvre un fichier texte (mode, voir le tableau ci-dessus)
fgetc($fichier)Lit caractère par caractère
fgets($fichier)Lit ligne par ligne (séparer par des retour chariots)
fread($fichier, nb car)Lecture d’un bloc de caractère en nombre de car.
fwrite($fichier, « texte à écrire »)Ecrit une chaine dans un fichier à la position du pointeur
fputs($fichier,« texte à écrire »);Ecrit une chaine dans un fichier à la position du pointeur
rewind($fichier)Remet le pointeur en début de fichier (position 0)
fseek($fichier, nPosition)Positionne le pointeur à la position voulue
fclose($fichier);Fermeture du fichier

Exemples

  <?php

  /*
  MODE D'OUVETURE D'UN fichier
  'r'   Ouvre en lecture seule,
  'r+'  Ouvre en lecture et écriture
  'w'   Ouvre en écriture seule;          // efface les anciennes données
  'w+'    Ouvre en lecture et écriture;   // efface les anciennes données
  'a'   Ouvre en écriture seule;
  'a+'   Ouvre en lecture et écriture;
  */

  // AFFICHAGE DU CONTENU CARACTERE PAR CARACTERE
  // ============================================

  // Ouverture du fichier
  $data = fopen("data.txt", "r");

  $char = fgetc($data); // Premier car. Lecture caractère par caracère...

  // On vérifie si est un caracètre...
  while ($char == true) {
    // On affiche le caractère
    echo $char;
    // On récupère le caracère suivant...
    $char = fgetc($data); // Lecture du caractère suivant...
  }

  // Fermeture du fichier
  fclose($data);

  echo "<br><br><br><br>";

  // AFFICHAGE DU CONTENU LIGNE PAR LIGNE
  // ====================================

  // Ouverture du fichier
  $data = fopen("data.txt", "r");

  $line = fgets($data); // Lecture de la première ligne du fichier
  while (feof($data) == false) {
    echo $line."<br>";
    $line = fgets($data); // Lecture de la ligne suivante...
  }

  // Fermeture du fichier
  fclose($data);


  echo "<br><br><br><br>";


  // RECUPERATION DU CONTENU DANS UNE VARIABLE
  // =========================================

  // Ouverture du fichier
  $data = fopen("data.txt", "r");

  $contenu = fread($data, 10000); // récupère les 10 000 premiers caractères...
  echo $contenu;

  // Fermeture du fichier
  fclose($data);

  echo "<br><br><br><br>";



  // ECRIRE DANS UN FICHIER (EFFACE LES ANCIENNES DONNEES)
  // ====================================================

  // Ouverture du fichier
  $data = fopen("data_add.txt", "w");
  // PHP_EOL effectue un retour à la ligne tel que \r\n ...
  fwrite($data,"BIENVENUE :)\n");
  fwrite($data,"Ligne n°1 TEST d'écriture".PHP_EOL);
  fwrite($data,"Ligne n°2 TEST d'écriture".PHP_EOL);
  fwrite($data,"Ligne n°3 TEST d'écriture");

  echo "Ecriture dans le fichier <b>data_add.txt</b> effectué !";

  echo "<BR>Pointeur actuel :".ftell($data); // Position du pointeur dans le fichier...
  rewind($data); // Revenir en début du fichier...
  echo "<BR>Pointeur actuel après la fonction rewind() :".ftell($data); // Position du pointeur dans le fichier...

  // SI ON REECRIT...
  fwrite($data,"SALUT LES AMIS"); // ECRASE LES CARACTERES A LA POSITION DU POINTEUR

  // Fermeture du fichier
  fclose($data);

  echo "<br><br><br><br>";

  // AJOUT DES DONNEES DAnS UN FICHIER
  // =================================
  // Ouverture du fichier
  $data = fopen("data_add.txt", "a");
  // PHP_EOL effectue un retour à la ligne tel que \r\n ...
  fwrite($data,PHP_EOL."AJOUT".PHP_EOL);
  fwrite($data,"TEST d'écriture");
  echo "Données ajoutés dans <b>data_add.txt</b>";

  // Fermeture du fichier
  fclose($data);

  echo "<br><br><br><br>";

  // AJOUT DES DONNEES DAnS UN FICHIER
  // =================================
  // Ouverture du fichier
  $data = fopen("data_NEW.txt", "w");
  // PHP_EOL effectue un retour à la ligne tel que \r\n ...
  $contenu = "test d'écriture d'un contenu".PHP_EOL."avec la fonction fputs()".PHP_EOL;
  fputs($data,$contenu);
  fseek($data,10); // REmet le pointeur à la position 10
  fputs($data,$contenu); // écroit à partir de la position 10

  echo "Données ajoutés dans <b>data_NEW.txt</b>";

  // Fermeture du fichier
  fclose($data);

  ?>

0 commentaires

Soumettre un commentaire