Page 1 sur 1

aide sur sctructure tableau à partir d'un fichier texte

Posté : 06 nov. 2008, 18:35
par Stefanie
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.

Posté : 06 nov. 2008, 20:32
par VaN
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.

Posté : 07 nov. 2008, 01:53
par AB
Alors Stephanie, tu n'as rien pu faire de la proposition de VaN ?

Posté : 07 nov. 2008, 11:16
par Invité
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.

Posté : 07 nov. 2008, 12:36
par AB
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.

Posté : 07 nov. 2008, 12:50
par jojolapine
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 ;)

Posté : 07 nov. 2008, 13:07
par AB
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:

Posté : 12 nov. 2008, 13:59
par Stefanie
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.

Posté : 12 nov. 2008, 17:07
par Invité
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 ?

Posté : 15 nov. 2008, 11:13
par AB
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');