Tutoriel PHP

PHP

Découvez les bases de PHP dans mon support de formation dédié à ce puissant langage orienté web.


HTML HTML5 CSS Dreamweaver Bootstrap

Manipuler des fichiers en PHP

Dans ce tutoriel, nous abordons la manipulation de fichier

Ouvrir un fichier fopen()

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.

Exercice

Afficher le contenu d'un fichier dans un navigateur avec fpassthru

fpassthru($fichier)
<?php
$source1="fichier1.txt";
$fichier1=fopen($source1,"r");
fpassthru($fichier1); // Permet d'afficher le contenu du fichier dans un navigateur
?>

Lecture de fichiers avec fgets

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);
?>

Extraire le premier caractère d'un fichier avec fgetc

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()

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'

Lire une chaîne de caractére dans un fichier ouvert avec fread

fread($fichier,longueur)
La fonction fread() permet de lire une chaîne de caractére dans un fichier ouvert, jusqu'a la longueur indiquée en argument

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);
?>

Exercice

Ecrire dans un 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()

fwrite(string pointeur, string chaîne, (string longueur)
fwrite($fichier,'Texte a ajouter')

ou

fputs()

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

Vérifier l'existence d'un fichier avec file_exists

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 !";
?>

Copier coller des fichiers avec copy

Pour copier un fichier, il faut utiliser la fonction copy().
La fonction retourne TRUE si tout se passe correctement et sinon FALSE.
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";
?>

Exercice

Renommer un fichier avec rename

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";
?>

Exercice

C'est la fonction unlink() que l'on utilise
unlink(fichier)
<?php
if(@unlink("essai.txt"))
{
Echo "Le fichier essai.txt a été supprimé.";
}
else echo "Erreur";
?>

Exercice