Découvez les bases de PHP dans mon support de formation dédié à ce puissant langage orienté web.
Dans ce tutoriel, nous abordons la manipulation de fichier
fopen(string filename, string mode)
La fonction fopen() renvoie true si l'ouverture est possible et false si elle ne l'est pas.
fopen("fichier.txt", "r")
<?php
$source="fichier.txt";
if($fichier=@fopen($source,"r")) // Le @ permet de ne pas afficher l'erreur et renvoie le statut que nous définisons en dessous
{
echo "L'ouverture du fichier est possible car la fonction fopen retourne TRUE<br />";
}
else
{
echo "Ouverture du fichier impossible car fopen retourne FALSE";
}
?>
Valeurs posiibles :
a Ouverture du fichier pour : écrire et créer le fichier. L'écriture commence a la fin du fichier
a+ Mêmes fonctions que ci-dessus sauf que la lecture est permise.
r Ouverture d'un fichier en lecture seule.
r+ Mêmes fonctions que ci-dessus sauf qu'il est possible d'écrire dans le fichier. L'écriture commence au début du fichier.
w Ouverture du fichier en écriture seulement. Création du fichier si celui-ci n'existe pas sauf que les données contenues précédemment sont effacées.
w+ Mêmes fonctions sauf qu'il est possible de lire dans le fichier.
fpassthru($fichier)
<?php
$source1="fichier1.txt";
$fichier1=fopen($source1,"r");
fpassthru($fichier1); // Permet d'afficher le contenu du fichier dans un navigateur
?>
fgets(string pointeur, string longueur)
La fonction fgets() permet d'extraire une chaîne d'une certaine longueur.
Il faut aussi savoir que la fonction extrait la chaîne de la longueur précise définie en argument, plus un caractére et que la fonction s'arrête aux sauts de lignes
< ?php
$source4="fichier.txt";
$fichier4=fopen($source4,"r+");
echo fgets($fichier4,4);
?>
fgetc($fichier,longeur)
fgetc() permet d'extraire le premier caractére du fichier
fgetc(string pointeur)
< ?php
$fichier = fopen("fichier.txt","r");
$premier = fgetc($fichier);
echo "Premier Caractére : " . $premier;
fclose($fichier);
?>
fgets($fichier, longueur)
La fonction fgets() permet d'extraire une chaîne d'une certaine longueur.
Il faut aussi savoir que la fonction extrait la chaîne de la longueur précise définie en argument, plus un caractére et que la fonction s'arrête aux sauts de lignes
fgets(string pointeur, string longueur)
<?php
$fichier = fopen("fichier.txt","r");
$premier = fgets($fichier, 10);
echo "Dix Premier Caractéres : " . $premier;
fclose($fichier);
?>
fgetss($fichier,longueur)
La fonction fgetss() a quasiment la même utilité que la fonction fgets() sauf qu'elle n'extrait ni les balises HTML, ni les balises PHP
Pour un fichier contenant : '<strong>Bonjour !< /strong>< br>Test de la fonction fgetss', la fonction ne renverra que les caractéres, la mise en forme HTML sera ignorée : 'Bonjour !Test de la fonction fgetss'
fread($fichier,longueur)
fread(string pointeur, string longueur)
fclose(fichier) // Permet de fermer le fichier
<?php
$fichier = fopen("essai.txt","r");
$premier = fread($fichier, 10);
echo "Dix Premiers Caractéres : " . $premier;
fclose($fichier);
?>
Pour écrire dans un fichier, on peut utiliser au choix la fonction fwrite() ou fputs()
La fonction retourne TRUE si l'écriture se passe normalement, sinon elle retourne FALSE.
Attention toutefois : le fichier doit bien être ouvert en mode écriture : w, a ou r+.
fwrite(string pointeur, string chaîne, (string longueur)
fwrite($fichier,'Texte a ajouter')
ou
fputs(string pointeur, string chaîne, (string longueur))
<?php
$fichier = fopen("essai.txt","w");
if(fwrite($fichier, "TEXTE A ECRIRE"))
{
echo "OK !";
}
else echo "Erreur";
fclose($fichier);
?>
Exemple
Pour vérifier si un fichier existe, on utilise la fonction file_exists()
file_exists(string fichier)
file_exists("fichier.txt")
<?php
if(file_exists("fichier.txt")) {
echo "Fichier existant";
}
else echo "Introuvable !";
?>
copy(fichier_depart,fichier_destination)
<?php
if(@copy("essai.txt","complet/copy_fichier.txt"))
{
Echo "Le fichier essai.txt a été copié dans le répertoire complet/copy_fichier.txt.";
}
else echo "Erreur";
?>
il faut utiliser la fonction rename()
rename(string nom_depart, string nom_nouveau)
rename(nom_depart, nom_nouveau)
<?php
if(@rename("essai.txt","nouveau_fichier.txt")) {
Echo "Le fichier essai.txt a été renommé en nouveau_fichier.txt.";
}
else echo "Erreur";
?>
unlink(fichier)
<?php
if(@unlink("essai.txt"))
{
Echo "Le fichier essai.txt a été supprimé.";
}
else echo "Erreur";
?>