Insertion fichier TXT champs déroulant

Eléphanteau du PHP | 17 Messages

09 mars 2006, 16:03

bonjour je cherche depuis un moment comment creer une formulaire déroulant incorporant des données sous formats TXT présente dans un repertoire de mon hébergeur!

Ce ci dans le but de générer sur un autre script un graphique de donnée stoker dans ses meme doc en txt!

Actuellement mon système necessite un copie coller des fichier TXt j'aimerai pouvoir automatisé ce système dans un but de gain de temps !!

Merci de me tenir informé

Mammouth du PHP | 1967 Messages

09 mars 2006, 18:11

ce n'est pas trés claire,


2possibilité de création
1°) un formulaire receuille des informations, les stocke dans un fichier txt
et un autre script lit le fichier txt et crée un graphique

2°) un formulaire est créé à partir des informations du fichier txt
et la partie graphique n'est pas trés claire.

pour la première possibilité,

un formulaire et une récupération de donnée dans des variables et une concatenation spécifique ex:
variable1 | variable2 | variable3

l'écriture dans un fichier txt
$fh = fopen ("chemin du fichier","mode");//le chemin => en relatif le mode a+(rajoute des données à la fin du fichier)
fwrite ($fh,$donnees);//$donnees est la ligne des données à inclure dans le fichier
fclose ($fh);
et la récupération, identique avec fgets et un explode pour la récupération de variable

Si tu utilise un tableau => serialize () et unserialize ()

EDIT : si c'est juste la fonction copier/coller qui est à automatiser, il existe des fonctions pour ca

sinon précise ta question
Spols
pour les fan de rubik's cube ou pour les curieux ==> le portail francophone du rubik's cube

Eléphanteau du PHP | 17 Messages

10 mars 2006, 10:21

Voici le script en php en question!
<?
foreach ($_POST as $key => $value) $$key = addslashes($value);
foreach ($_GET as $key => $value) $$key = addslashes($value);
?>
<?  
include ( "/usr/local/share/jpgraph/jpgraph.php"); 
include ("/usr/local/share/jpgraph/jpgraph_line.php"); 

// The callback that converts timestamp to minutes and seconds
function TimeCallback($aVal) {
    return Date('H:i:s',$aVal);
}

if ($nomfile == "")
{
echo("<h3>Le champ nom est vide !</h3>");
$valide = false;
}
else
{
$readfile = file($nomfile);
}

for ($k=1; $k<=count($readfile)-1; $k++)
{
$fields = split("\t",$readfile[$k]);
$temps[] = $fields[0]*60; 
$powerc[] = $fields[1];
$power[] = $fields[2];
$presc[] = $fields[3];
$press[] = $fields[4]; 
$temp[] = $fields[5]; 
$depla[]= $fields[6]/10; 
}


//$delta_t = $temps[1]-$temps[0]

//Set data to plot
switch($plot1)
	{
	case 0:
	 $ydata = $power;
	 break;
        case 1:
         $ydata = $temp;
         break;
        case 2:
         $ydata = $press;
         break;
	case 3:
	 $ydata = $presc;
	 break;
        case 4:
         $ydata = $powerc;
         break;
        case 5:
         $ydata = $depla;
         break;
         }

switch($plot2)
	{
	case 0:
	 $y2data = $power;
	 break;
        case 1:
         $y2data = $temp;
         break;
        case 2:
         $y2data = $press;
         break;
	case 3:
	 $y2data = $presc;
	 break;
        case 4:
         $y2data = $powerc;
         break;
        case 5:
         $y2data = $depla;
         break;
         }

// Create the graph. These two calls are always required
$graph = new Graph(750,375,"auto");    
$graph->img->SetMargin(50,100,50,75);
//$graph->SetScale("textlin");
$graph->SetScale("linlin");
$graph->SetShadow();
$interval=$k/10;
$graph->xaxis->SetTextTickInterval($interval,1);
$graph->SetY2Scale("lin");

// Create the linear plot
$xdata=$temps;

$lineplot=new LinePlot($ydata,$xdata);
$lineplot2=new LinePlot($y2data,$xdata);

switch($plot1)
	{
	case 0:
	 $lineplot ->SetLegend("P(W)");
	 break;
        case 1:
	 $lineplot ->SetLegend("T(C)");
         break;
        case 2:
	 $lineplot ->SetLegend("P(bar)");
         break;
	case 3:
	 $lineplot ->SetLegend("Pc(bar)");
	 break;
        case 4:
	 $lineplot ->SetLegend("Pc(W)");
         break;
        case 5:
	 $lineplot ->SetLegend("d(mm)");
         break;
         }
switch($plot2)
	{
	case 0:
	 $lineplot2 ->SetLegend("P(W)");
	 break;
        case 1:
	 $lineplot2 ->SetLegend("T(C)");
         break;
        case 2:
	 $lineplot2 ->SetLegend("P(bar)");
         break;
	case 3:
	 $lineplot2 ->SetLegend("Pc(bar)");
	 break;
        case 4:
	 $lineplot2 ->SetLegend("Pc(W)");
         break;
        case 5:
	 $lineplot2 ->SetLegend("d(mm)");
         break;
         }

$graph ->legend->Pos( 0.01,0.5,"right" ,"center");

// Add the plot to the graph
$graph->Add($lineplot);
$graph->AddY2($lineplot2);
$lineplot2->SetColor("orange");
$lineplot2->SetWeight(2);
$graph->y2axis->SetColor("orange");

$graph->title->Set("Belt parameters ON LINE");
//$graph->xaxis->title->Set("Time x step ");
//$graph->yaxis->title->Set("Belt on line");

$graph->title->SetFont(FF_FONT1,FS_BOLD);
$graph->yaxis->title->SetFont(FF_FONT1,FS_BOLD);
$graph->xaxis->title->SetFont(FF_FONT1,FS_BOLD);

$graph->xaxis->SetLabelFormatCallback('TimeCallback');
$graph->xaxis->SetLabelAngle(90);


$lineplot->SetColor("blue");
$lineplot->SetWeight(2);

$lineplot2->SetColor("orange");
$lineplot2->SetWeight(2);

$graph->yaxis->SetColor("blue");// Display the graph 
$graph->Stroke(); 

//$graph ->Stroke("/usr/home/peter/images/result2002.png" );

?>
Je désir en fait permettreaux utilisateurs de ce script de ne plus avoir a faire un copie coller du nom du fichier TXT!

Je voudrais rajouter dans ce code: une varible permettant de choisir un ensemble de fichier TXT présent dans un repertoire de mon hébergeur!

par exemple:

chemin:www.monsite.com/fichier.php

irait sur le répertoire de stockage des fichiers txt :www.monsite.com/fichier_txt/....

Dans se liens se trouverez en fait la liste complète des fichiers en txt.

Le code en question permettrrais juste de lire en temps réel la liste des fichiers présent dans le dossier de stockage et établirer un menu déroulant ou toute les donnée txt apparaitrai voilà!

je sais pas si je me suis bien fais comprendre ??

et si biensur cela est possible je sais que c'est possible en html en créant un formulaire et en rentrant chaque valeur a la main et c'est justement ca que je veus eviter!

Eléphanteau du PHP | 17 Messages

10 mars 2006, 15:44

par contre j'ai mis l'intégralité du code du script php j'éspère que cela ne genera pas je voulais que vous puissiez voir l'intégralité du code pour vous faire une idée pour l'intégration eventuel !!

Eléphant du PHP | 67 Messages

10 mars 2006, 15:52

si j'ai bien compris tu veux lister les fichiers d'un repertoire pour les afficher dans une liste de choix (formulaire) ?
<select name="fichier">
<?php
$rep = "mon_dossier/";
$dir = opendir($rep);
//les dossiers (is_dir) ou les fichiers (is_file) 
while ($f = readdir($dir)) {
   if(is_file($rep.$f)) 
   {
   echo '<option value="'.$f.'">'.$f.'</option>';
   }
}
closedir($dir);
?>
</select>
 

Eléphanteau du PHP | 17 Messages

10 mars 2006, 16:38

oui en effet je veus juste que mon menu déroulant permette de choisir des fichier TXT présent dans un répertoire de mon hébergeur

Eléphanteau du PHP | 17 Messages

10 mars 2006, 17:39

donc en gros j'ai juste a incorporé ton code dans mon script c'est bien ca ??

Mammouth du PHP | 1967 Messages

10 mars 2006, 19:52

il vaut sans dout mieux vérifier que les fichiers soit bien des .txt meme s'il n'y a que ca dans les dossier concerner
Spols
pour les fan de rubik's cube ou pour les curieux ==> le portail francophone du rubik's cube

Eléphanteau du PHP | 17 Messages

13 mars 2006, 10:06

heu oui je pense que c'est en effet la meilleur solution que me proposes tu de faire ?

Mammouth du PHP | 1967 Messages

13 mars 2006, 19:46

en vérifiant l'extension du fichier avant de l'ouvrir si ce n'est pas un .txt, tu n'ouvre pas
Spols
pour les fan de rubik's cube ou pour les curieux ==> le portail francophone du rubik's cube

Eléphanteau du PHP | 17 Messages

14 mars 2006, 10:19

en fait c'est pas compliqué je suis entrain de configuré le système de façon a obtenir un menu déroulant dans mon formulaire qui genere mon graphique!

dans ce menu seront généré l'intégralité des chichier TXT présent dans un répertoire renseigner dans la ligne du code mon soucis est d'intégré ce dis code dans mon script !