Les fichiers

La liste exhaustive des fonctions de gestion de fichier de PHP est décrite sommairement ci-après :

  • basename — Sépare le nom du fichier et le nom du dossier
  • chgrp — Change le groupe propriétaire d’un fichier
  • chmod — Change le mode du fichier
  • chown — Change le groupe propriétaire du fichier
  • clearstatcache — Efface le cache de stat
  • copy — Copie un fichier
  • delete — Effacer
  • dirname — Renvoie le nom du dossier
  • disk_free_space — Renvoie l’espace disque disponible dans le répertoire
  • disk_total_space — Retourne la taille d’un dossier
  • diskfreespace — Alias de disk_free_space
  • fclose — Ferme un fichier
  • feof — Teste la fin du fichier
  • fflush — Envoie tout le contenu généré dans un fichier
  • fgetc — Lit un caractère dans un fichier
  • fgetcsv — Renvoie la ligne courante et cherche les champs CSV
  • fgets — Renvoie la ligne courante sur laquelle se trouve le pointeur du fichier
  • fgetss — Renvoie la ligne courante du fichier et élimine les balises HTML
  • file_exists — Vérifie si un fichier existe
  • file_get_contents — Lit tout un fichier dans une chaîne
  • file_put_contents — Ecrit une chaîne dans un fichier
  • file — Lit le fichier et renvoie le résultat dans un tableau
  • fileatime — Renvoie la date à laquelle le fichier a été accédé pour la dernière fois
  • filectime — Renvoie la date de dernier accès à un inode
  • filegroup — Lire le nom du groupe
  • fileinode — Renvoie le numéro d’inode du fichier
  • filemtime — Renvoie la date de dernière modification du fichier
  • fileowner — Renvoie le nom du propriétaire du fichier
  • fileperms — Renvoie les permissions affectées à un fichier
  • filesize — Renvoie la taille d’un fichier
  • filetype — Retourne le type de fichier
  • flock — Verrouille le fichier
  • fnmatch — Repère un fichier à partir d’un masque
  • fopen — Ouverture d’un fichier ou d’une URL
  • fpassthru — Affiche le reste du fichier
  • fputcsv — Formate une ligne en CSV et l’écrit dans un fichier
  • fputs — Alias de fwrite
  • fread — Lecture du fichier en mode binaire
  • fscanf — Analyse un fichier en fonction d’un format
  • fseek — Modifie la position du pointeur de fichier
  • fstat — Lit les informations sur un fichier à partir d’un pointeur de fichier
  • ftell — Renvoie la position du pointeur du fichier
  • ftruncate — Tronque un fichier
  • fwrite — Ecrit un fichier en mode binaire
  • glob — Recherche des chemins qui vérifient un masque
  • is_dir — Indique si le fichier est un dossier
  • is_executable — Indique si le fichier est exécutable
  • is_file — Indique si le fichier est un véritable fichier
  • is_link — Indique si le fichier est un lien symbolique
  • is_readable — Indique si un fichier est autorisé en lecture
  • is_uploaded_file — Indique si le fichier a été téléchargé par HTTP POST
  • is_writable — Indique si un fichier est autorisé en écriture
  • is_writeable — Alias de is_writable
  • lchgrp — Change l’appartenance du groupe d’un lien symbolique
  • lchown — Change l’appartenance du propriétaire d’un lien symbolique
  • link — Crée un lien
  • linkinfo — Renvoie les informations d’un lien
  • lstat — Retourne les informations sur n fichier ou un lien symbolique
  • mkdir — Crée un dossier
  • move_uploaded_file — Déplace un fichier téléchargé
  • parse_ini_file — Traite un fichier de configuration
  • pathinfo — Retourne des informations sur un chemin système
  • pclose — Ferme un processus de pointeur de fichier
  • popen — Crée un processus de pointeur de fichier
  • readfile — Affiche un fichier
  • readlink — Renvoie le nom du fichier vers lequel pointe un lien symbolique
  • realpath — Retourne le chemin canonique absolu
  • rename — Renomme un fichier ou un dossier
  • rewind — Replace le pointeur de fichier au début
  • rmdir — Efface un dossier
  • set_file_buffer — Alias de stream_set_write_buffer
  • stat — Renvoie les informations à propos d’un fichier
  • symlink — Crée un lien symbolique
  • tempnam — Crée un fichier avec un nom unique
  • tmpfile — Crée un fichier temporaire
  • touch — Modifie la date de modification et de dernier accès d’un fichier
  • umask — Change le « umask » courant
  • unlink — Efface un fichier

Ouvrir un fichier

Avant de pouvoir travailler avec un fichier on va déclarer une ressource (un handler) qui pointe sur un fichier local ou distant. Ceci se fait avec la fonction fopen().

Il existe différents modes d’ouverture, voici les principaux :

mode Description
‘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. 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.

Exemples :

<?php
// Exemple (en lecture) sous Unix / Linux
$fic = fopen(« /home/rasmus/file.txt », « r »);
// Exemple (en écriture) sous Windows
$fic = fopen(« c:\\data\\info.txt », « w »);
// et via une URL
$fp = fopen(« http://dd.estsurinternet.com/index.php », »r »);
?>

Lecture d’un fichier existant

Lecture ligne à ligne

<?php
$fichier = « fichier.txt »;

$fp = fopen($fichier, »r »); // Ouverture du fichier en lecture
while (!feof($fp)) {
$ligne = fgets($fp,4000); // On lit la ligne
print (« $ligne <br> »; // on l’affiche
}
fclose($fp); // Fermeture du fichier
?>

Lecture caractère par caractère

<?php
if (!($fic=fopen(« dd.txt », »r »)))
exit(« ouverture Impossible !! »);
while (!feof($fic)) // tant qu’il ya des caractères à lire…
{
$car=fgetc($fic);
echo $car;
}
fclose($fic);
?>

Ecriture dans un fichier

Exemple d’écriture ligne à ligne

<?php

$fp = fopen(« fichier.txt », »a »)){ /* ouverture du fichier en écriture */
fputs($fp, « $ligne »); // on écrit la ligne dans le fichier
fputs($fp, « \n »); // on va a la ligne
fputs($fp, « $ligne2 »); // on écrit la 2eme ligne
fclose($fp);
}
?>