|
|
|
| Auteur : Frédéric Jacquenod Adaptation : Christophe Magdelaine |
Les manipulations de fichiers
Introduction
Les fichiers sont des entités dont on ne peut se passer. En effet, conserver des informations dans le but de les restituer, faire des statistiques, des fichiers d'accès, ... sont des éléments importants que vous utilisez constamment.Fonctions de tests
Avant de faire quoique ce soit sur un fichier il faut souvent effectuer des tests pour connaître l'état de celui-ci (existe t'il, est t'il lisible ...).
$fichier="donnees.dat";
if(file_exists($fichier)) {
print " Le fichier $fichier existe";
}
else
print "Le fichier $fichier n'existe pas sur la machine $SERVER_NAME";
if(is_file("fichier.data"))
print "l'élément est un fichier";
else
print "L'élément n'est pas un fichier";
exemple
<HTML><BODY BGCOLOR=#FFFFFF>
<B><U>Test sur les fichiers</U><Br><Br>
<?
#La variable $SCRIPT_FILENAME renvoie le nom du programme en cours
$variable = $SCRIPT_FILENAME;
if(is_file($variable))
{
print "<BR>Etat du fichier testé<BR>";
# Je lance une commande système qui récupère l'état du fichier
system("ls -l $SCRIPT_FILENAME|awk '{print $1\" \"$5\" \"$9}'");
print "<BR><BR>Test sur le fichier avec les fonctions<BR>";
print "<FONT COLOR=green>$variable</FONT> ";
print " est un fichier<BR> ";
if(is_readable($variable))
{print "<FONT COLOR=green>lisible</FONT> ";}
if(is_writable($variable))
{print "<FONT COLOR=green>modifiable</FONT> ";}
if(is_executable($variable))<br>
{print "<FONT COLOR=green>exécutable</FONT> ";}
}
else
{
print "<FONT COLOR=green>$variable</FONT> ";
print " n'est pas un fichier ou n'est pas accessible";
}
?>
</FONT></BODY></HTML>
$taille=filesize($fichier);
$duree=fileatime($fichier);
$duree=filemtime($fichier);
$duree=filectime($fichier);
touch($fichier);
(system("/bin/rm $fichier"))
syntaxe de la fonction:unlink($fichier);
copy($source_fichier,$destination_fichier);
Ouverture et fermeture des fichiers
$pointeur=fopen($fichier,'attribut');
ou avec un test
if($pointeur=fopen($fichier,'attribut'))
{print "Fichier ouvert correctement";}
else
{print "Problème lors de l'ouverture du fichier";}
exemple
<HTML> <BODY bgcolor=#FFFFFF>
<B> <U>Travail sur les fichiers</U> <Br>
<br>
<?
$fichier="is_file.php";
if($pointeur=fopen($fichier,'r'))
{
print "Le fichier <font color=green>$fichier</font> existe<br>";
print "Voici son contenu interprété<br>";
while(!feof($pointeur))
{
#Je lis le contenu HTML du fichier
$ligne=fgets($pointeur,512);
#Je transforme les < et les> pour éviter leurs interprétation
#en HTML sinon nous ne voyons pas le code
$lignemodif1=str_replace("<","<",$ligne);
$lignemodif2=str_replace("<","<",$lignemodif1);
print "<font color=red>$lignemodif2</font><br>";
}
fclose($pointeur);
}
else
{print "Probleme d'ouverture du fichier <font color=red>$fichier</font>";}
?>
</font> </BODY> </HTML>
fclose($pointeur);
Lecture des données
$ligne=fgets($pointeur,$taille);
$bloc=fread($pointeur,$taille_bloc);
$car=fgetc($pointeur);
Ecriture des données
Vous savez comment lire les éléments contenus dans un fichier mais il peut être très intéressant de pouvoir stocker dans des fichiers des informations provenant de formulaires. Pour pouvoir écrire dans un fichier il faut auparavant l'avoir ouvert en écriture ou ajout (voir la partie fopen).
fputs($pointeur,$chaine);
fwrite($pointeur,$chaine);
exemple
<HTML> <BODY bgcolor=#FFFFFF>
<B> <U>Travail sur les fichiers</U> <Br>
<br>
<?
$fichier="/tmp/ecrire.txt";
print "1. Je détruis le fichier <font color=green>$fichier</font><Br>";
unlink($fichier);
print "2. J'ouvre le fichier en ecriture<Br>";
if($pointeur=fopen($fichier,'w'))
{
print "3. J'ecris les informations<BR>";
fwrite($pointeur,"login:password\n");
fwrite($pointeur,"jacquenod:nantes44\n");
fputs($pointeur,"alexandre:paris75\n");
}
fclose($pointeur);
print "4. Je lis le contenu du fichier<BR>";
if($pointeur=fopen($fichier,'r'))
{
print "Le fichier <font color=green>$fichier</font> existe<br>";
print "<HR>Voici son contenu<BR>";
$i=0;
while($ligne=fgets($pointeur,512))
{
$i++;
print "ligne$i : <font color=red>$ligne</font><BR> ";
}
fclose($pointeur);
}
else
{print "Probleme d'ouverture du fichier <font color=green>$fichier</font>";}
?>
</font> </BODY> </HTML>
Autres fonctions utiles
feof($pointeur);
fseek($pointeur,nboctets);
flock(pointeur,chiffre);
Importation de fichiers php
Comme dans tous les langages ou presque vous pouvez réutiliser des éléments déjà crées dans un autre programme php sans être obligé de tout réécrire.include(fichier);
Nous vous informons que ce cours constitue une œuvre protégée en France par le Code de la Propriété Intellectuelle, et à l’étranger par les conventions internationales en vigueur sur le droit d’auteur. La violation de l’un des droits d’auteur de l’œuvre est un délit de contrefaçon. Il est donc interdit, à titre privé ou public, de reproduire, copier, vendre, revendre ou exploiter, que ce soit dans un but commercial ou purement gratuit, ce cours, sauf accord exprès et préalable de son auteur.
| RESSOURCES GRATUITES |
| |
| |
| |
| |
| |
| |
| |
| PRATIQUE / OUTILS |
| |
| |
| |
| |
| TÉLÉCHARGEMENTS |
| |
| |
| |
| INFOS SITE |
| |
| |
| |
| |
| PARTENAIRES |
| |
| |
| |
| |
| |
| |
|
|