PHP et JPGraph , bug...

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : PHP et JPGraph , bug...

PHP et JPGraph , bug...

par miikkkllll » 04 mai 2012, 09:44

Bonjour à tous,

Je m’appelle Michael et je rencontre un gros gros problème avec JPGraph. Je souhaite tracer un graphique dont les coordonnées sont issues d'un fichier txt, jusque là pas de problème. Comme la longueur du fichier txt varie, tout est avec des variables. JPGraph me met " l'image ne peut être affichée car elle contient des erreurs".

Je précise que quand je fais un var_dump, les données sont toutes de type "float" dans les 2 tableaux (en X et en Y) et qu'ils contiennent le même nombre de lignes.

Je précise également que quand je place "array(.....)" avec toute les 1800 valeurs du fichier text, là le graphique se fait correctement. A nouveau un "var_dump" et le résultat est IDENTIQUE au code avec les boucles!!!

Voici mon code :
<?php
include ('C:\wamp\jpgraph\src\jpgraph.php');
include ('C:\wamp\jpgraph\src\jpgraph_plotline.php');
include ('C:\wamp\jpgraph\src\jpgraph_line.php');

$contenu_fichier = file_get_contents('C:\071828_Q0720C_00.txt');
$nombrelignes = substr_count($contenu_fichier, "\n"); // compte le nombre de retour à la ligne dans le fichier
$nombrelignes = $nombrelignes - 24; // moins 24 lignes d'information au début de fichier
echo $nombrelignes."<br />";

$weight = array();
$weightx = array();
$width = array();
$widthx = array();
$length = array();
$lengthx = array();

$fic = file('C:\071828_Q0720C_00.txt');// test de la logique de recherche, qu'est ce qu'il y a à la ligne 24??? 
$resize = $fic[24];
$resized = substr($resize, 8, 6);
$resized = floatval($resized);
var_dump($resized);

for($i=0;$i < $nombrelignes;$i++)
{
	$fic = file('C:\071828_Q0720C_00.txt'); //on ouvre le fichier, on fait une boucle
	$a = $i + 24; // on décale la cellule pointée de 24 lignes vers le bas
	$resize = $fic[$a]; //on place dans la variable $resize la valeur de la ligne n°i+24 du tableau $fic
	$resized1 = substr($resize, 8, 6);
	$resized1 = floatval($resized1);// on s'assure que ce n'est pas une chaine de caractères mais bien des valeurs numériques
	$weightx[$i] = $resized1;
}
for($i=0;$i < $nombrelignes;$i++) // meme procédure mais avec les valeurs en Y
{
	$fic = file('C:\071828_Q0720C_00.txt');
	$a = $i + 24;
	$resize = $fic[$a];
	$resized1 = substr($resize, 16, 6);
	$resized1 = floatval($resized1);
	$weight[$i] = $resized1;
}	
//print_r($weight);
//var_dump($weight); 


/* $graph->xaxis->title->Set("Longueur"); */
/* $graph->yaxis->title->Set("Poids métrique"); */
$courbe=new LinePlot($weight,$weightx);
$line = new PlotLine(HORIZONTAL,7.23,"red",1); 
$graph = new Graph(900,600);
$graph->SetScale('linlin',6.8,7.6);
$graph->Add($courbe);
$graph->Add($line);
$graph->Stroke();

?>


Je suis en stage et je galère depuis maintenant 8H pour trouver une solution...

Je répète, le var_dump($weight) est identique à l'écran si je remplis le tableau en donnant les valeurs une par une ou en utilisant les boucles.

Serait-ce peut etre à cause du trop grand nombre de coordonnées? (1800 +-)


Merci d'avance à vous

Michael