aide sur sctructure tableau à partir d'un fichier texte

Stefanie
Invité n'ayant pas de compte PHPfrance

06 nov. 2008, 18:35

Bonjour à tous,

J'ai besoin d'aide sur un script en php. J'ai réussi à faire quelque chose dont je suis satisfaite mais mes connaissances (quasi-nulle) m'empêchent d'aller plus loin.

Je dispose de plusieurs fichiers txt formatés comme ceci :

Code : Tout sélectionner

01/11/08 0 1 2 3 4 5 6 7 02/11/08 0 1 2 3 4 5 6 7 ...
Ils sont situés dans un dossier sur une machine disposant d'un serveur apache.

Voici le bout du code que j'utilise :
<?php
// Lister tous les fichiers du répertoire
$table = array();
$table = glob('mon_repertoire/*.txt');
for ($i=0;$i!=sizeof($table);$i++)
echo "<a href='".$table[$i]."'>".$table[$i]."</a><br/>";
?>
J'obtiens donc la liste de mes fichiers *.txt sur une page avec un lien vers le contenu de chacun des fichiers.

J'aurais besoin de structurer le contenu du fichier dans un tableau html avec ligne entête type :

Code : Tout sélectionner

-------------------------------------------- | date | a | b | c | d | e | f | g | h | -------------------------------------------- |01/11/08| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | |02/11/08| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | --------------------------------------------
Merci à vous, j'espère avoir été clair.

A+

Stef.

VaN
Mammouth du PHP | 1107 Messages

06 nov. 2008, 20:32

Sans rentrer dans les détails, tu pourrai faire un explode() sur chaque ligne de ton tableau, en recherchant le caractère "espace".

puis avec une boucle, tu formates toutes tes nouvelles variables, pour les insérer dans ton tableau HTML.

ViPHP
AB
ViPHP | 5818 Messages

07 nov. 2008, 01:53

Alors Stephanie, tu n'as rien pu faire de la proposition de VaN ?

Invité
Invité n'ayant pas de compte PHPfrance

07 nov. 2008, 11:16

Alors Stephanie, tu n'as rien pu faire de la proposition de VaN ?
Malheureusement non ! :(

Je n'arrive pas à comprendre comment l'intégrer à mon code.

Mon code me permet de générer une page sur laquelle je dispose de tous mes fichiers .txt avec un lien ahref qui me permet de les consulter.

Ce que je souhaite faire, c'est lors de cette consultation, que la page soit formaté en tableau avec cellule et colonne en html.

Merci à vous.

ViPHP
AB
ViPHP | 5818 Messages

07 nov. 2008, 12:36

Sur le principe de l'affichage tu peux t'inspirer de ce code (testes-le dans une page isolée)
<?php
$var = '01/11/08 0 1 2 3 4 5 6 7';
$tabvar = explode(' ',$var);
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Document sans titre</title>
<style type = "text/css">
.date {
background-color:#FF99CC;
border-right:1px solid black;
border-left:1px solid black;
padding:5px;
display:inline-block;
}
.nombre {
background-color:#EEEEEE;
text-align:center;
padding:5px;
border-right:1px solid black;
display:inline-block;
width: 25px;
}
</style>
</head>

<body>
<div id="conteneur">
<?php foreach ($tabvar as $key => $value) 
	{
	if ($key == 0) 
	echo '<span class = "date">' .$value. '</span>'; 
	else
	echo '<span class = "nombre">' .$value. '</span>';
	}
?>
</div>
</body>
</html>
Pour récupérer le contenu de tes fichiers tu peux t'intéresser à la fonction file_get_contents()

EDIT j'ai fait une structure en div parce que j'ai l'habitude mais tu peux utiliser le même principe en utilisant des tableaux.
Modifié en dernier par AB le 07 nov. 2008, 12:52, modifié 1 fois.

ViPHP
ViPHP | 3607 Messages

07 nov. 2008, 12:50

Si je puis me permettre, peut-être que là la fonction file() sera plus interessante, étant donné qu'elle s'occupe déjà du découpage ligne par ligne...
A voir ;)

ViPHP
AB
ViPHP | 5818 Messages

07 nov. 2008, 13:07

Effectivement c'est une bonne idée. J'ai donné file_get_contents() sans réfléchir parce que j'ai trop l'habitude de l'utiliser mais dans ce cas file() serait certainement plus pratique :wink:

Stefanie
Invité n'ayant pas de compte PHPfrance

12 nov. 2008, 13:59

Hello !

voici ce que j'ai réussi à pondre !

Code : Tout sélectionner

<HTML><BODY><table border> <tr> <th>date</th> <th>ty</th> <th>ac</th> <th>pr</th> <th>te</th> <th>in</th> <th>in-pa</th> <th>in-pr</th> <th>in-va</th> </tr> <?php $lignes = file('MONREP/monfichier.txt'); for ($i=0; $i<count($lignes); $i++) { echo "<tr>"; $statistiques=explode(" ",$lignes[$i]); for ($a=0; $a<count($statistiques); $a++){ echo "<td>".$statistiques[$a]; } echo "</tr>"; } ?> </table></BODY></HTML>
Ce que je souhaite maintenant faire, c'est combiner mes deux scripts.

Je veux donc tomber sur une page disposant de tous mes fichiers.txt avec un lien href vers la script 2 qui permet d'intégrer les données dans le tableau.

c'est possible ?

Il suffit de transférer la valeur .$table[$i]. d'un script à l'autre.

Invité
Invité n'ayant pas de compte PHPfrance

12 nov. 2008, 17:07

C'est bon, j'ai trouvé ! :)

index.php

Code : Tout sélectionner

<HTML> <HEAD> <TITLE>Statistiques</TITLE> </HEAD> <BODY> <?php // on liste les fichiers *.txt dans le repertoire courant $table = array(); $table = glob('*.txt'); for ($i=0;$i!=sizeof($table);$i++) // on cree un lien sur chaque valeur en exportant la variable type (nom fichier) echo "<a href='tableau.php?type=".$table[$i]."'>".$table[$i]."</a><br/>"; ?> </BODY> </HTML>
tableau.php

Code : Tout sélectionner

<HTML> <BODY> <?php echo $_GET['type']; ?> <br> <table border> <tr> <th>date</th> <th>ty</th> <th>ac</th> <th>pr</th> <th>te</th> <th>in</th> <th>in-pa</th> <th>in-pr</th> <th>in-va</th> </tr> <?php // on recupere la variable $lignes = file("$type"); // traitement de chaque ligne for ($i=0; $i<count($lignes); $i++) { echo "<tr>"; $statistiques=explode(" ",$lignes[$i]); for ($a=0; $a<count($statistiques); $a++){ echo "<td>".$statistiques[$a]; } echo "</tr>"; } ?> </table> <a href="" onClick="javascript:window.history.go(-1)">Retour</a> </BODY></HTML>
Maintenant, pour faire plus propre, je souhaite supprimer l'extension .txt de mon affichage, est-ce possible et comment ?

ViPHP
AB
ViPHP | 5818 Messages

15 nov. 2008, 11:13

Maintenant, pour faire plus propre, je souhaite supprimer l'extension .txt de mon affichage, est-ce possible et comment ?
$fichier = 'azerty.txt';
echo basename($fichier,'.txt');