FAQ PHP
FAQ PHPConsultez toutes les FAQ
Nombre d'auteurs : 68, nombre de questions : 580, dernière mise à jour : 18 septembre 2021
La fonction touch($nom_fichier) permet de créer le fichier portant le nom $nom_fichier, s'il n'existe pas déjà. Si un fichier du même nom existe déjà, alors sa date de dernière modification sera modifiée en la date actuelle.
Un fichier de log sert à garder trace des erreurs survenant dans une application PHP. Par exemple, lorsque survient une erreur, en plus d'afficher à l'écran un message d'erreur, on peut enregister quelques informations dans un fichier. Ce fichier pourra être lu régulièrement par un administrateur ou même par une application.
A chaque instance d'erreur correspond une ligne dans notre fichier. Il sera naturellement ordonnée selon la date : on rajoute les lignes les unes après les autres.
On convient d'un format particlulier pour nos lignes. Il est important de conserver le contexte dans lequel survient l'erreur : la date et l'heure, la page, l'identifiant de l'utilisateur connecté... Par exemple le schéma suivant : <comment>date et heure \t identifiant de l'utilisateur \t page \t description de l'erreur</comment>
Le caractère spécial \t représente une tabulation : nos champs seront donc séparés par une tabulation.
Ainsi à chaque erreur, on appelle la fonction suivante : error_log().
function error_log($desc
) {
global $ERROR_FILE
,
$visitor
;
/* ligne à écrire */
$ligne
=
date('
Y-m-d H:i:s
'
).
"
\t
"
.
$_SERVER
[
'
PHP_SELF
'
].
"
\t
"
.
$visitor
->
get_login().
"
\t$desc
"
;
/* ouverture du fichier de log, le mode "a+" permet d'écrire à la fin */
if($fp
=
fopen($ERROR_FILE
,
"
a+
"
)) {
/* écriture de la ligne à concurrence de 1024 caractères */
fwrite($fp
,
$ligne
,
1024
);
/* fermeture du fichier */
fclose($fp
);
}
}
On suppose que les informations sur l'utilisateur connecté sont accessibles via un objet de session $visitor, dont la méthode get_login() retourne l'identifiant. La variable $_SERVER['PHP_SELF'] contient le nom de la page en cours. On pourrait la completer par $_SERVER['QUERY_STRING'] afin de connaître le détail des paramètres passés au script...
Note : ne pas gérer les erreurs qui peuvent survenir dans la fonction de gestion des erreurs !
La fonction unlink() permet de supprimer un fichier. Elle retourne TRUE si succès, FALSE sinon.
Contrairement à ce qui est indiqué dans la documentation, le fonction "unlink" fonctionne sous Linux et Windows.
Pour supprimer massivement des fichiers on utilise le code suivant :
foreach(glob("
*
"
) as $fichier
) // * indique qu'aucun filtre n'est effectué
{
@
unlink($fichier
);
}
La fonction glob() recherche et retourne un tableau contenant tous les fichiers du dossier
Avec la même fonction, on peut également supprimer des fichiers en précisant leur extension.
Exemple :