$contenu = fread(fopen("test.txt",
"r"), filesize("test.txt"));
echo $contenu;
$contenu_array
= file("test.txt");
echo $contenu_array[0];
echo $contenu_array[1];
...
Nous allons simplement ouvrir un fichier en lecture :
$MonFichier = fopen("listechiffre.txt","r"); //lecture
le premier paramètre est évidemment le nom du fichier, le 2ème ("r") représente de mode d'ouverture de ce fichier. Voici les paramètres possibles
r
ouverture
en lecture seulement
w
ouverture en écriture seulement (la
fonction crée le fichier s'il n'existe pas)
a
ouverture
en écriture seulement avec ajout du contenu à la fin du fichier
(la fonction crée le fichier s'il n'existe
pas)
r+
ouverture en lecture et écriture
w+
ouverture en lecture et écriture (la
fonction crée le fichier s'il n'existe pas)
a+
ouverture en lecture et écriture avec ajout du contenu à
la fin du fichier (la fonction crée le fichier
s'il n'existe pas)
Une fois le fichier assigné à une variable, on peut l'accéder avec fgets
Le fichier listechiffre.txt contient :
Première ligne
Ligne Deux
Ligne Trois
Dernière ligne
$ListeChiffre = fopen("listechiffre.txt","r");
$Partie = fgets($ListeChiffre, 1000);
1000 est le nombre de caractères extraits. De toute façon, fgets ne lira pas plus d'une ligne à la fois. $Partie contiendra donc :
Première ligne
Si on avait remplacé 1000 par 3, àPartie aurait contenu Pre.Il semblerait que la plus grande valeur admise pour le nombre de caractères lus est 4096.
la valeur de feof ne vaut simplement rien tant qu'on est pas arrivé à la fin du fichier
$ListeChiffre = fopen("listechiffre.txt","r");
$Partie = fgets($ListeChiffre, 1000);
echo "1. $Partie ," , feof($ListeChiffre)
, "<BR>"; //Première ligne
$Partie = fgets($ListeChiffre, 1000);
echo "2. $Partie ," , feof($ListeChiffre)
, "<BR>"; // Ligne Deux
$Partie = fgets($ListeChiffre, 1000);
echo "3. $Partie ," , feof($ListeChiffre)
, "<BR>"; // Ligne Trois
$Partie = fgets($ListeChiffre, 1000); //
LECTURE DE LA DERNIERE LIGNE
echo "4. $Partie ," , feof($ListeChiffre)
, "<BR>"; // Dernière ligne
$Partie = fgets($ListeChiffre, 1000);
echo "5. $Partie ," , feof($ListeChiffre)
, "<BR>"; // plus rien mais pas d'erreur
L'affichage serait :
1. Première
ligne ,
2. Ligne Deux ,
3. Ligne Trois ,
4. Dernière ligne ,1
5. ,1
$ListeChiffre = fopen("listechiffre.txt","r");
while (!feof($ListeChiffre))
{
echo fgets($ListeChiffre, 1000) , "<BR>";
}
fputs($ListeChiffre, "\n"); // on va a la ligne
Attention : Le "\n" donne un résultat satisfaisant dans le navigateur, mais lors de l'ouverture du fichier dans le bloc-notes, un petit carré apparait en lieu et place du saut de ligne et ça ne passe pas à la ligne.
fputs($ListeChiffre,
"Grande échelle");
La fermeture d'un fichier est très importante, ne fût-ce que parce que c'est à ce moment qu'il se met à jour. Il ne sert à rien d'écrire dans un fichier texte si ensuite on ne le ferme pas : les modifications ne seront pas prises en compte.
Comme ceci :
Début de fichier
:
Un
Deux
Réverbère
Fin de fichier
<?
// Ouverture du fichier et ajout du réverbère :
$ListeChiffre = fopen ("listechiffre.txt" , "a+");
fputs ($ListeChiffre , "\n");
fputs ($ListeChiffre , "Réverbère");
fclose ($ListeChiffre);
// Réouverture du fichier et affichage de celui-ci, ligne par ligne
$ListeChiffre = fopen ("listechiffre.txt" , "r");
echo "Début de fichier : <BR>";
while (!feof($ListeChiffre))
{
echo fgets($ListeChiffre, 1000);
echo "<BR>";
}
echo "Fin de fichier";
fclose ($ListeChiffre);
?>
Remarque introductive : Nous allons utiliser 3 fichiers :
- fichierclient.txt (liste réelle des clients)
- entreedonnees.htm (formulaire de saisie des nouveaux clients)
- confirmation.php (ajout des nouveaux clients dans fichierclient.txt, et affichage de son contenu)
L'exemple qui suit affiche un formulaire qui demande le nom et le prénom. Quand on clique sur le bouton Submit, on ouvre un fichier fichierclient.txt qui contient seulement une ligne : Nom,Prénom en lecture/ajout (a+), et on ajoute dans une nouvelle ligne le nom virgule le prénom, comme ceci :
Muller,André
Ce qui fait qu'à chaque fois qu'on exécute la page contenant le formulaire et qu'on clique sur SUBMIT, le nouveau client s'ajoute en dessous des autres. Lorsqu'on arrive sur la page de confirmation, on va afficher le contenu du fichier FichierClient.txt qui pourrait ressemble à ça avec 2 clients quelconques :
Nom,Prénom
Martin,Jean
Muller,Michel
Ce fichier ne contiendra pas une once de PHP, comme nous l'avons déjà vu dans la page concernant les formulaires :
<body>Nous nous contentons d'assigner les contenus des 2 champs aux variables respectives EDINom et EDIPrenom.
C'est dans ce fichier que le code PHP va remplir le fichier fichierclient.txt.
Remarque : Maintenant, était-ce bien nécessaire d'avoir un 2ème fichier pour remplir le fichier fichierclient.txt? Peut-être pas, mais je ne connais pas les autres paramètres de action="????????", ou plutôt je n'ai pas cherché pour être honnête !
<?
// Ajout du nouveau nom et prénom, séparés
par une virgule, et terminés par un saut de ligne :
$FichierClient = fopen ("fichierclient.txt" , "a+");
fputs ($FichierClient , "\n");
fputs ($FichierClient , $EDINom);
fputs ($FichierClient , ",");
fputs ($FichierClient , $EDIPrenom);
fclose ($FichierClient);
//Lecture
séquentielle du fichier et affichage, ligne par ligne du contenu :
$FichierClient = fopen ("fichierclient.txt" , "r");
while (!feof($FichierClient))
{
echo fgets ($FichierClient, 4096);
echo "<BR>";
}
fclose ($FichierClient);
?>
---