Suite à l'ouverture d'un dossier, tous les fichiers peuvent être accédés pour une utilisation quelconque telle qu'une lecture ou une modification ou une suppression.
L'ouverture d'un fichier s'effectue par l'intermédiaire de la fonction fopen() délivrant une ressource.
$fichier = readdir($dossier); $id_fichier = fopen($fichier, "r+");
La ressource peut être ouverte en lecture, en écriture ou en lecture et écriture. Pour cela le second argument doit valoir respectivement r, w ou r+, w+, a et a+.
Les deux derniers permettent non seulement d'accéder à un fichier en écriture seule ou lecture et écriture mais aussi de créer un fichier s'il n'existe pas.
<? $fichier = "chemin/un_fichier.ext"; $id_fichier = fopen($fichier, "a+"); fputs($id_fichier, $texte); ?>
Plusieurs fonctions PHP servent à vérifier une caractéristique intrinsèque, par exemple, si une variable de système de fichiers est un répertoire (is_dir()), un fichier (is_file()), un exécutable (is_executable()), un lien (is_link) ou encore si le fichier est ouvert en lecture seule (is_readable()), en écriture seule (is_writeable()) et enfin si le fichier a été téléchargé par la méthode HTTP POST (is_uploaded_file()).
<?php
$chemin = "c:\\site\\";
if (is_dir($chemin))
{ echo $chemin . " est un dossier !"; }
$chemin = "c:\\site\\index.html";
if (is_file($chemin))
{ echo $chemin . " est un fichier !"; }
?>
La fonction file_exists() s'assure de l'existence d'un fichier pour le chemin spécifié.
$valide = file_exists($fichier);
La lecture d'un fichier est réalisable par différents moyens :
<?
$fichier = "chemin/un_fichier.ext";
$id_fichier = fopen($fichier,"r");
while (!feof($id_fichier)) {
$contenu = fgets($id_fichier, 4096);
echo $contenu;
}
?><?
$fichier = "chemin/un_fichier.ext";
if(file_exists($fichier))
$tableau = file($fichier);
while(list($cle,$valeur) = each($tableau)) {
echo "<p>".$valeur."</p>";
}
?><? $fichier = "chemin/un_fichier.ext"; $id_fichier = fopen($fichier, "rb"); $contenu = fread($id_fichier, filesize ($fichier)); ?>
<? $fichier = "url/un_fichier.html"; $id_fichier = fopen($fichier, "rb"); $contenu = fgetss(element, filesize ($fichier)); ?>
<?php
$ligne = 1;
$id_fichier = fopen ("chemin/un_fichier.csv","r");
while ($tableau = fgetcsv($id_fichier, 1024, ".")) {
$nb = count($tableau);
echo "<h3>$nb champs dans la ligne $ligne: </h3>";
$ligne++;
for ($i=0; $i<$nb; $i++) {
echo "<p>".$tableau[$i]."</p>";
}
}
?>Un fichier peut être affiché directement à l'écran par le truchement da la fonction readfile().
<? $fichier = "url/un_fichier.html"; $longueur_fichier = readfile($fichier); ?>
Les fichiers peuvent délivrer plusieurs informations à l'aide de fonctions appropriées telles que filesize pour leur taille, filetype pour le type, fileatime, filectime et filetmime pour la date et l'heure du dernier accès ou de la dernière modification, ou encore stat, fstat, et lstat retournant un tableau de caractéristiques.
<?php
$chemin = "c:\\autoexec.bat";
$id_fichier = fopen($chemin, "r");
echo "taille totale de $chemin : " . filesize($chemin) . " octets<br>";
echo "Date et heure du dernier accès : "
. fileatime($fichier) . " " . filectime($fichier) . "<br>";
echo "Date de la dernière modification : "
. filemtime($fichier) . "<br>";
print_r(fstat($id_fichier));
fclose($id_fichier);
?>
La fermeture d'un fichier s'opère par la fonction fclose().
fclose($id_fichier);
La suppression d'un fichier s'effectue par l'intermédiaire de la fonction unlink().
int | false = unlink(string fichier)