Afficher les fichiers .log dans une page web

Invité
Invité n'ayant pas de compte PHPfrance

21 juil. 2005, 19:47

Salut,
J'ai un script de chat qui genère automatiquement des fichiers .log chaque jour. Ces fichiers .log sont créé placé dans un répertoire.

Pour une question d'esthétique, j'aimerais afficher ces fichiers .log sur une page web.
J'ai pensé au fonction include, mais le probleme c'est que les noms des fichiers log sont différents chaque jour.

Comment faire pour afficher ces fichiers .log dans une page web ?

Mammouth du PHP | 983 Messages

21 juil. 2005, 19:55

Tu listes les fichiers de ce répertoire dont l'extension est.log. Puis tu proposes un lien pour visualiser chaque log.
<?php
//tu te places dans le bon répertoire

$logs = glob("*.log");
foreach ($logs as $log) {
   echo '<a href="'.$log.'">'.$log' - ' . filesize($log) . 'octets</a>\n';
}
?>
Modifié en dernier par rami le 21 juil. 2005, 19:55, modifié 1 fois.

Mammouth du PHP | 19672 Messages

21 juil. 2005, 19:55

En listant les fichiers du répertoire et en les classant par date de création, tu peux choisir lequel afficher. Comment fonctionne ton script actuellement ?
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Invité
Invité n'ayant pas de compte PHPfrance

21 juil. 2005, 21:37

Tu listes les fichiers de ce répertoire dont l'extension est.log. Puis tu proposes un lien pour visualiser chaque log.
<?php
//tu te places dans le bon répertoire

$logs = glob("*.log");
foreach ($logs as $log) {
   echo '<a href="'.$log.'">'.$log' - ' . filesize($log) . 'octets</a>\n';
}
?>
Ca affiche un message d'erreur :

Parse error: parse error, unexpected T_CONSTANT_ENCAPSED_STRING, expecting ',' or ';' in /var/www/free.fr/e/c/monsiteweb/log/index.php on line 4

ViPHP
pjl
ViPHP | 2119 Messages

21 juil. 2005, 22:35

tu utilises X7 Chat ?

Eléphant du PHP | 63 Messages

22 juil. 2005, 03:02

Un petit oubli à la ligne 4. Mets ceci à la place:

Code : Tout sélectionner

echo '<a href="'.$log.'">'.$log.' - ' . filesize($log) . 'octets</a>\n';

Administrateur PHPfrance
Administrateur PHPfrance | 149 Messages

22 juil. 2005, 06:18

n'est-ce pas mieux

Code : Tout sélectionner

echo '<a href="'.$log.'">'.$log.' - ' . filesize($log) . 'octets</a>'."\n";
au lieu de

Code : Tout sélectionner

echo '<a href="'.$log.'">'.$log.' - ' . filesize($log) . 'octets</a>\n';
[/quote]
--
Moosh - ancêtre de la communauté
http://www.phpfrance.com

Invité
Invité n'ayant pas de compte PHPfrance

22 juil. 2005, 11:55

Merci Moost !
Ca marche !

<?php
$logs = glob("*.log");
foreach ($logs as $log) {
echo '<a href="'.$log.'">'.$log.' - ' . filesize($log) . 'octets</a>'."\n";
echo '<br>';
}
?>

Cela donne une liste de liens à cliquer pour accéder directement aux fichiers log, sans accès FTP.

Mais, ce que je voulais exactement c'est ça :
<?php
$logs = glob("*.log");
foreach ($logs as $log) {
print("<font face=\"arial\" size=\"2\"> \n");
include("$log");
print("</font> \n");
echo '<br>';
}
?>

Ca affiche directement les textes sur une page web.

Seul problème : il ne passe pas à la ligne pour chaque message. Ca donne : [22:38] moi: test [22:39] moi: test2 [22:39] moi: test3...
Quand je lis les fichiers log avec le bloc note, après chaque message il va à la ligne.

Mammouth du PHP | 983 Messages

22 juil. 2005, 17:45

Va voir cette fonction.
Elle permet de remplacer les sauts de ligne par une balise <br>.