Fichier ( écriture, lecture....) pour débutant

Soyez le premier à donner votre avis sur cette source.

Snippet vu 24 351 fois - Téléchargée 34 fois

Contenu du snippet

Ben, beaucoup de personnes qui commence le php et qui non aucune connaissance de programmation ou de linux/unix se demandent comment marche les fichiers en php.
Alors jai fait un petit récapitulatif de ce que je sais faire et j'espère que cela va vous aidez.

Source / Exemple :


Fichier : 

Ecrire et créer un fichier c'est assez simple en général : pour cela on utilise 

$fp=fopen("nom du fichier","mode"); 

Pour le nom du fichier prenons texte.txt, le mode correspond à ce que l'on veut faire "r" pour indiquer la lecture et "a" ou "w" pour l'écriture. 
"a" signifie qu'on ouvre et on se place à la fin du fichier et "w" au début. 
A ces trois lettres on peut rajoutez le signe "+" pour indiquez qu'il faut creer le fichier s'il n'existe pas. Pour les fichiers de type binaire on rajoute aussi "b", donc 

$fp=fopen("texte.txt","w+"); 
fclose($fp); 

va créer un fichier texte.txt, pour l'instant le fichier est vide. 
Remarquer qu'un fois qu'on a fini de travailler sur un fichier on le ferme avec fclose(); 

Disons que je veuille rajoutez dans ce fichier un texte : 

$texte="Mon premier ajout"; 
$fp=fopen("texte.txt","a"); 
fwrite($fp,"$texte"); 
fclose($fp); 

Voila mon fichier texte.txt contient du texte. 

Voyons d'autres méthodes d'ajout : 
On peut ausi utliser aussi fputs(); 

$fp=fopen("texte.txt","a"); 
fputs($fp," est :"); 
fputs($fp,"\n"); 
fputs($fp,"cette portion de texte."); 
fclose($fp); 

On voit ici que fputs($fp,"\n"); sert à sauter une ligne. 
Il existe fseek(); qui permet de de placer le pointeur ou on veut dans le fichier. 

Voyons maintenant comment récupérer les infomations contenues dans le fichier "texte.txt" 

Pour lire le fichier tous simplement on fait : 

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

Apres tout dépend de ce qu'on veut récupérer : 
fread();peut récupérer la quantité de caractères qu'on veut. 

$fichier_texte=fread($fp,"11"); 
echo"$fichier_texte"; 

ceci provoquera l'affichage de "Mon premier", il y a ausi fgets(); 

$fichier_texte=fgets($fp,1024); 
echo"$fichier_texte"; 

fgets prends la ligne complete soit "Mon premier ajout". 
Pour avoir tout le contenu on peut par exemple parcourir le fichier ligne par ligne 

while(!feof($fp)) 
{ 
$fichier_texte=fgets($fp,1024); 
echo"$fichier_texte"; 
} 

Ou encore extraire tous les n characteres sur la totalité du fichier (ici n=10) 

while(!feof($fp)) 
{ 
$fichier_texte=$fichier_texte=fread($fp,"10"); 
echo"$fichier_texte"; 
} 

Ou pour finir récupérer tout d'un coup avec fread() connaissant la taille du fichier. 
Pour cela on utilise filesize() : 

$taille=filesize("texte.txt"); 
$fichier_textel=fread($fp,$taille); 

Voyons maitenant quelques fonctions appliquer aux fichiers 

copy($source, $dest)
Copie le fichier $source vers $dest et retourne true si succès ou false si echec 

rename($source, $dest)
Renomme le fichier $source en $dest et retourne true si succès ou false si echec 

unlink($file)
Supprime le fichier $file et retourne true si succès ou false si echec 

mkdir($dir, $mode) 
Créée le dossier $dir avec les droits unix $mode (exprimés en octal) et retourne true si succès ou false si echec 

rmdir($dir)
Supprime le dossier $dir et retourne true si succès ou false si echec 

fileatime($file)
Retourne la date à laquelle le fichier $file a été accédé pour la dernière fois ou false si échec 

filectime($file)
Retourne l'heure à laquelle le fichier $file a été accédé pour la dernière fois ou false si échec 

filemtime($file)
Retourne la date de dernière modification du fichier $file ou false si échec 

fileperms($file)
Retourne les permissions associées au fichier $file ou false si échec 

filesize($file)
Retourne la taille du fichier $file (en octets) ou false si échec 

filetype($file)
Retourne le type du fichier $file (fifo, char, dir, block, link, file, unknown) ou false si échec 

is_dir($file)
Retourne true si $file est un répertoire ou false sinon 

is_executable($file)
Retourne true si $file est exécutable ou false sinon 

is_file($file)
Retourne true si $file est un fichier ou false sinon 

is_link($file)
Retourne true si $file est un lien symbolique ou false sinon 

is_readable($file)
Retourne true si $file est accessible en lecture ou false sinon 

is_writable($file)
Retourne true si $file est accessible en écriture ou false sinon 

touch($file)
Change la date de dernière modification du fichier $file en maintenant 

En bonus :

Vérifier l'existence d'un fichier : Permet de vérifier si un fichier ou non. 

$fichier="fichier.txt"; 
if(file_exists("$fichier")) 
{ echo "Le fichier existe ..."; } 
else { echo "Le fichier n'existe pas !"; } 

Statut d'un fichier : Evoque les differents droits sur un fichier 

$fichier="fichier.txt"; 

if (is_readable("$fichier")) { echo "Le fichier peut être lu"; } 
else { echo "Le fichier ne peut pas être lu !";} 

if (is_executable("$fichier")) { echo "Le fichier peut être exécuté"; } 
else { echo "Le fichier ne peut pas être exécuté !";} 

if (is_writable("$fichier")) { echo "On peut écrire dans ce fichier"; } 
else { echo "Ecriture impossible dans ce fichier !";} 

Compteur grace au fichier texte : Voici un petit compteur tout bete. 

$fp = fopen("compteur.txt","r+"); 
$nbvisites = fgets($fp,255); 
$nbvisites++; 
fseek($fp,0); 
fputs($fp,$nbvisites); 
fclose($fp); 
echo"Vous êtes le $nbvisites visiteurs"; 

On onvre en lecture et écriture, puis on met dans la variable $nbvisites les 255 premiers caratères, on y ajoute 1. 
Ensuite on se place au debut du fichier, on crée le résultat et on n'oublie pas de fermer.

A voir également

Ajouter un commentaire

Commentaires

peacestheway
Messages postés
4
Date d'inscription
mardi 11 avril 2006
Statut
Membre
Dernière intervention
8 octobre 2007

c'est sympa comme tuto mais je me pose une question rapport a l'enregistrement des données,
lorsque l'on utilise un outil de mise en forme du texte par exemple une feuille de style css,
niveau rédaction dans le fichier texte nous sommes obligés d'utiliser des charactères genre " ' " la quote ou encore les guillemets "" or lors de l'enregistrement des données nous nous retrouvons avec un fichiers inexploitable comprenant ce genre de rédactionnel exemple :

en effet un slash viens d'interposer à chaque fois que l'un de ces caractère est utilisé !

si quelqu'un a une solution je suis preneur !
Merci ;)
speedylol
Messages postés
228
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
27 novembre 2013

bonjour simple question il y a t'il moyens de'envoyez par sessions et lecture par sessions svp???
Le Prince Dragon
Messages postés
26
Date d'inscription
mercredi 12 avril 2006
Statut
Membre
Dernière intervention
26 janvier 2007

merci pour tout ca ma boucops aidai
contunu commca
cs_Cil20
Messages postés
43
Date d'inscription
vendredi 20 décembre 2002
Statut
Membre
Dernière intervention
3 novembre 2008

Excellent et trés bien commenté. 10 :)
banjo12
Messages postés
25
Date d'inscription
dimanche 16 novembre 2003
Statut
Membre
Dernière intervention
13 novembre 2005

est ce que c'est possible d'ecrire a un endroit précis (par exemple entre deux balises dans un fichier xml) ?
Parce que je cherche à développer un livre d'or en flash grâce au xml...Pour lire les messages pas de probleme mais c'est pour les écrire sur le fichier xml !!
Donc si quelqu'un pouvait maider ça serait fort aimable :-) :-)
Contactez moi sur banjo12@wanadoo.fr
Merci
Afficher les 18 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.