OVH Cloud OVH Cloud

Lecture d'un fichier

4 réponses
Avatar
VooDoo
Bonjour,
j'essaye en vain de lire un fichier de temperature a partir d'une page web
avec le code suivant:


$handle = fopen("http://192.168.10.220/temp", "r");
$myTempLine = fgets($handle,255);
fclose($handle);
list($Probe1, $Value1, $Probe2, $Value2, $Probe3, $Value3, $Probe4,
$Value4) = explode("|", $myTempLine);
$row['content'] .= "<strong><big>&middot;</big></strong>&nbsp\n";
$row['content'] .= '<b>Temperatures:</b><br> Salle: '.$Value2.'<br>';
$row['content'] .= ' Baie1: '.$Value1.'<br>';
$row['content'] .= ' Baie2: '.$Value3.'<br>';
echo $row;

Aucune valeur ne s'affiche.
Le contenu de la page http://192.168.10.220/temp est:
Probe 1|80.6|Probe 2|75.0|Probe 3|-99.9|Probe 4|-99.9
idem avec cette url:
http://192.168.10.220/temp/


J'ai tout vérifié, tout essayé mais toujours aucun résultat, meme en faisant
un simple echo $Value1 ....

Quelqu'un peu m'aider??
Merci d'avance,
A+
VoodOo

4 réponses

Avatar
loufoque
VooDoo a dit le 18/08/2004 11:49:

Quelqu'un peu m'aider??


Commence par faire var_dump($myTempLine);

Avatar
O.L.
loufoque wrote in news:cfvnlu$6rd$
reader4.wanadoo.fr :

VooDoo a dit le 18/08/2004 11:49:

Quelqu'un peu m'aider??


Commence par faire var_dump($myTempLine);


A mon avis c'est ça qui bloque :
list($Probe1, $Value1, $Probe2, $Value2, $Probe3, $Value3, $Probe4,
$Value4) = explode("|", $myTempLine);

Je suis pas un expert de la fonction list(), donc si j'étais à ta place je
m'y prendrais autrement ;-)

$nombre_de_valeurs = 4;
$myData = explode("|", $myTempLine);
for($i=0; $i<$nombre_de_valeurs*2; $i+=2) {
${"Probe".($i+1)} = $myData[$i];
${"Value".($i+1)} = $myData[$i+1];
}

... puis tu sors ça dans $row['content'] comme tu l'as scripté.


@+
O.L.


Avatar
P'tit Marcel

$handle = fopen("http://192.168.10.220/temp", "r");


ajouter:
if (!$handle) die('impossible de lire le fichier de température');

$myTempLine = fgets($handle,255);
fclose($handle);


ajouter:
$nb = substr_count($myTempLine , '|');
if( $nb <> 7)
die("nombre de données erroné dans le fichier de température:$nb");

list($Probe1, $Value1, $Probe2, $Value2, $Probe3, $Value3, $Probe4,
$Value4) = explode("|", $myTempLine);
$row['content'] .= "<strong><big>&middot;</big></strong>&nbspn";


manque un ; après le &nbsp
(note: je ne dis rien sur les balises désuètes genre strong ou big ou b
car j'en fait tout autant...)

à part ça, plutot que ce faire scier avec <strong> blablabla </strong>
pourquoi ne pas utiliser les balises ul et li ?


$row['content'] .= '<b>Temperatures:</b><br> Salle: '.$Value2.'<br>';
$row['content'] .= ' Baie1: '.$Value1.'<br>';
$row['content'] .= ' Baie2: '.$Value3.'<br>';

echo $row;


on ne fait pas un echo d'un tableau.
http://fr.php.net/manual/fr/language.types.string.php#language.types.string.casting


Tout ça ne règlera peut être pas ton problème, mais tu auras au moins la
fierté d'avoir un script inopérant mais bien écrit :-)

à part ça, il y a quoi dans la log d'erreur d'Apache ?


eça
--
P'tit Marcel

Avatar
loufoque
P'tit Marcel a dit le 19/08/2004 23:58:

(note: je ne dis rien sur les balises désuètes genre strong ou big ou b
car j'en fait tout autant...)


<strong> n'est pas désuète, c'est pour spécifier une emphase forte.