Lire et écrire dans un fichier – partie 2

0.00 avg. rating (0% score) - 0 votes
Partager:

Pour des raison particulière, il arrive qu’on est envie de faire une petite mise en page avant d’écrire dans un fichier. Le problème, il peut devenir difficile de réussir à les récupérer pour les réutiliser.

Dans ce code, on sauvegarde des informations sur les personnes qui visites la page:


<?php
$donnees = "\n";
$donnees .= "---------- ----------\n";
$donnees .= date("Y-m-d H:i:s");
$donnees .= "\n---------- ----------\n";
$donnees .= $_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']; 
$donnees .= "\n---------- ----------\n";
$donnees .= $_SERVER['HTTP_USER_AGENT'];
$donnees .= "\n---------- ----------\n";
$donnees .= "\n---------- ---------- ---------- ---------- ---------- ---------- ----------\n";

$filename = 'test.txt'; 
	if (file_exists($filename)) 
		{
			foreach (file($filename) as $key => $value)
			{
$donnees .= $value;
			}
		}
	else
		{
		}
file_put_contents('test.txt', $donnees);
?>

Ce qui donne dans le fichier:

---------- ----------
2014-01-30 02:01:07
---------- ----------
simonbhb.fr/blog/index.php
---------- ----------
Mozilla/5.0 (Windows NT 6.1; WOW64; rv:26.0) Gecko/20100101 Firefox/26.0
---------- ----------

---------- ---------- ---------- ---------- ---------- ---------- ----------

---------- ----------
2014-01-30 02:01:06
---------- ----------
simonbhb.fr/blog/index.php
---------- ----------
Mozilla/5.0 (Windows NT 6.1; WOW64; rv:26.0) Gecko/20100101 Firefox/26.0
---------- ----------

---------- ---------- ---------- ---------- ---------- ---------- ----------

Facile et simple a lire, ça sera plus le cas avec beaucoup plus de données. Il peut donc être utile d’afficher les données d’une autre manière. Pour cela on va afficher les données dans un tableau html pour gagner en lisibilité.
Mais comment récupérer les données, car chaque ligne a une donnée différente, ou commencer a les afficher et ou s’arrêter ?
Il faut commencer par séparer les données pour que chaque ligne de notre tableau affiche les bonnes informations. La séparation est une séries de barre, on en a sur la ligne 9 et 19(la couleur de la ligne est différente). Ensuite une fois qu’on sait ou est la séparation, on a plus qu’a stocker les données dans un array.

Dans ce code, on découpe les données, elles vont être placé dans un array:


<?php
// Nom du fichier
$file = file("test.txt");

$i = 0; // On commence a 0

// On parcourt le fichier
	foreach ($file as $key => $value)
	{
		if(strlen($value) == 77) // Si on sur la séparation
			{
$i++; // $i change a chaque passage de la séparation
			}
		else
			{
$array[$i][] = $value; // On ajoute chaque données entre chaque séparation dans un array
			}
	}
?>

Ensuite on a plus qu’a faire la mise en page pour afficher les données dans notre array:


<table cellspacing="2" cellpadding="2" width="100%" border="1">
	<tr>
		<th style="width:12%;">Date</th>
		<th>URL</th>
		<th>Usert Agent</th>
		<th>Méthode</th>
	</tr>
<?php	
	foreach ($array as $key => $value)
	{
?>
	<tr>
		<td><?=$value[2]; //date ?></td>
		<td><?=$value[4]; // url ?></td>
		<td><?=$value[6]; // user_agent ?></td>
		<td><?=$value[8]; // méthod ?></td>
	</tr>
<?php	
	}
?>
</table>

Résultat final:

DateURLUsert AgentMéthode
2014-01-30 02:07:50simonbhb.fr/blog/index.phpMozilla/5.0 (Windows NT 6.1; WOW64; rv:26.0) Gecko/20100101 Firefox/26.0POST
2014-01-30 02:07:48simonbhb.fr/blog/index.phpMozilla/5.0 (Windows NT 6.1; WOW64; rv:26.0) Gecko/20100101 Firefox/26.0POST

Tous les codes sont testés et sont fonctionnels, si un de ces codes ne marche pas chez vous, merci de me le signaler.
Partager:
0.00 avg. rating (0% score) - 0 votes

Vous aimerez aussi...

Laisser un commentaire