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

Soyez le premier à donner votre avis sur cette source.

Snippet vu 24 841 fois - Téléchargée 36 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
8 oct. 2007 à 12:47
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
31 oct. 2006 à 08:23
bonjour simple question il y a t'il moyens de'envoyez par sessions et lecture par sessions svp???
Le Prince Dragon Messages postés 24 Date d'inscription mercredi 12 avril 2006 Statut Membre Dernière intervention 26 janvier 2007
27 août 2006 à 23:04
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
4 oct. 2005 à 20:50
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
15 janv. 2005 à 00:31
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

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.