Gestion de fichiers
Le PHP permet de lire, écrire et de créer des fichiers. Ces fichiers sont généralement des fichiers txt. Dans ce chapitre, nous détaillerons l'utilisation des différentes instructions que possède le PHP à ce propos. Le "f" du début des instructions signifie "file" (fichier). Ainsi, fopen() signigier file open. Mais à quoi sert d'ouvrir un fichier pour écrire dedans? Ca peut être intéressant pour noter une phrase ou un nombre dans ce fichier à chaque fois qu'un visiteur vient sur votre page. Par exemple, réaliser un compteur rudimentaire! Voici la liste des instructions les plus importantes:


fopen()


fopen() permet d'ouvrir un fichier pour y travailler. Attention, vous ne verrez pas qu'il s'ouvre. C'est seulement le système qui va l'ouvrir et écrire dedans! Sa syntaxe est:

$variable fopen(fichier, mode);

fichier est bien entendu le nom du fichier et mode est le mode d'ouverture.
Quels sont les différents modes d'ouverture?
En voici la liste:
rlecture
wécriture (crée le fichier s'il n'existe pas).
aécriture et ajout du contenue A LA FIN du fichier (crée le fichier s'il n'existe pas)
r+lecture et écriture
w+lecture, écriture et crée le fichier s'il n'existe pas
a+lecture, écriture, ajout du contenu à la fin et crée le fichier s'il n'existe pas
Voici quelques exemples pour que vous compreniez mieux:
Ouverture d'un fichier en mode lecture:

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


fclose()


Tout fichier ouvert doit bien entendu être refermé. C'est à cela que va servir fclose(). La syntaxe de fclose() est la suivante:

fclose($variable);

Voici un exemple complet:

$texte=fopen("monfichier.txt","r");
fclose($texte);

L'exemple ci-dessus ne fera qu'ouvrir et fermer immédiatement le fichier "monfichier.txt".

fputs()


fputs() permet d'écrire dans un fichier. Sa syntaxe est:

fputs($variable,"texte");

Voici un exemple qui va écrire "J'adore le site theprogrammeur" dans un fichier TXT qu'il créera automatiquement.

<?php
$texte=fopen("fichier.txt","w");
fputs($texte,"J'adore le site theprogrammeur");
fclose($texte);
?>

Vous pouvez aller voir dans votre répertoire. Il y aura maintenant un fichier nommé "fichier.txt" qui contiendra la phrase: "J'adore le site theprogrammeur". Grâce à cela, vous pourrez, par exemple, faire un livre d'or rudimentaire!.

fgets();


La fonction fgets(); permet de récupérer un certaint nombre de caractères d'une ligne d'un fichier. Sa syntaxe est la suivante:

$ma_variable=fgets(variable, nbre de caractères);

nbre de caractères est le nombre de caractères que fgets(); doit récupérer sur la ligne.
Comme d'habitude, voici un exemple pour vous aider à comprendre. On aura préalablement créé un fichier txt nommé "fichier.txt" qui contiendra la phrase suivante:" Arrête ! Ecoute-moi, voyageur. Si tes pas te portent vers Gypsèle et les rives de l'Hèbre, cherche le vieil Hyllos et dis-lui qu'il célèbre un long deuil pour le fils qu'il ne reverra pas !"

$theprogrammeur=fopen("fichier.txt","r");
$ligne=fgets($theprogrammeur,15);
echo $ligne;

Voici ce qui s'affichera à l'écran:
Désolé, image introuvable
La fonction fgets(); n'a pris que les 15 premiers caractères de la première ligne de notre fichier.

file();


file(); est une fonction qui remplace fopen() et fgets();. file(); permet d'afficher le contenu du fichier dans un tableau. Voici sa syntaxe:

Tableau file(fichier);

Comme toujours, voici un exemple: (on réutilise le même "fichier.txt" que dans l'exemple précédent)

$fichier="fichier.txt";
//Condition pour tester si le fichier existe!
if(is_file($fichier)){
if($tableau=file($fichier)){
//boucle qui va parcourir tout le fichier pour afficher son contenu dans un tableau
for($i=0;$i&lt;count($tableau);$i++)
echo $tableau[$i];
}
//Si on a pas trouvé le fichier...
else{
echo"Erreur lors de l'exécution du script!";
}
}

Voici ce qui s'affichera dans votre navigateur:
Utilisation des fonctions de fichier PHP

Pour afficher tout le contenu d'un fichier, vous pouvez aussi utilier fgets + while + feof(), qui vérifie si on a atteint la fin du fichier. Pour afficher tout le contenu d'un fichier, vous utiliserez donc ce code:

$open = fopen("file.txt", "r");
$fichier = '';
while(!feof($open)){
$fichier .= fgets($open,500);
}
echo $fichier;
fclose($open);

Avec !feof(.. on vérifie si on est au bout du fichier et avec fgets, on récupère les 500 premiers caractères de la ligne (dur qu'il y en aie plus!).

Il existe encore d'autre fonctions pour "jouer" avec les fichiers mais je n'ai pas trouvé utile de les aborder dans ce cours car vous n'en verrez normalement pas l'utilité.

Les CHMOD


Lorsque vous voulez écrire dans un fichier, il est probable que vous n'ayez pas l'autorisation de le faire. Il va donc falloir aller modifier les autorisations du fichiers. Pour ce faire, une fois le fichier envoyé sur internet, faites un clic droit sur le fichier et cliquez sur "Propriétés":
chmod
Vous arriverez ensuite sur un panneau ressemblant à ceci:
chmodVous allez devoir remplacer les 3 chiffres écrits par "777" pour dire que tout les scripts peuvent l'ouvrir, le lire et écrire dedans. On vous demandera fréquemment dans des scripts de "Faire un CHMOD 777" sur un fichier. Il suffira de changer les nombres. Il y a bien entendu des numéros différents suivant les propriétés qu'à un fichier mais le chmod le plus fait est quand même le 777.
   

Creative Commons License
Sauf mention contraire, le contenu de cette page est sous licence Creative Commons
Page générée en 0.3506 secondes.
Retour en haut de la page
Imprimer cette page