[PHP] Comparaison de chaine d'un fichier

Comparaison de chaine d'un fichier [PHP] - PHP - Programmation

Marsh Posté le 31-08-2009 à 11:58:26    

Bonjour,  
 
Je suis en train de faire un petit truc en PHP.
J'ai un fichier texte générer par un .BAT que je lis ensuite via du code PHP.
je stock chaque ligne dans une variable, que je compare dans mon PHP par la suite.
chaque ligne contient soit OK soit KO (c'est un test de présence de process).
 
Le soucis, c'est que la comparaison ne fonctionne pas.
un stcmp me donne la valeur 2 et mon test prend toujours la condition fausse.
voici mon code.

Code :
  1. $fichier="pres.txt";
  2. $file=fopen($fichier,"r" );
  3. $cp=1;
  4. while (!feof($file))
  5. {
  6. $lig[$cp]=fgets($file,4096);
  7. $cp++;
  8. }
  9. fclose($file);
  10. //preparation des 4 status
  11. if ("$lig[2]"=="OK" ) { $p1="<td bgcolor=green><b>UP</b></td>"; } else { $p1="<td bgcolor=red><b>DOWN</b></td>"; }
  12. if ("$lig[3]"=="OK" ) { $p2="<td bgcolor=green><b>UP</b></td>"; } else { $p2="<td bgcolor=red><b>DOWN</b></td>"; }
  13. if ("$lig[4]"=="OK" ) { $p3="<td bgcolor=green><b>UP</b></td>"; } else { $p3="<td bgcolor=red><b>DOWN</b></td>"; }
  14. if ("$lig[5]"=="OK" ) { $p4="<td bgcolor=green><b>UP</b></td>"; } else { $p4="<td bgcolor=red><b>DOWN</b></td>"; }


 
la 1ere ligne contient une date que je n'affiche pas.
et apres j'ai que 4 lignes
en résultat, peut importe ce que contient mon fichier, le resultat afficher est DOWN
 
Si vous avez une idée, je suis preneur.


---------------
Serveur HFR - OpenTTD
Reply

Marsh Posté le 31-08-2009 à 11:58:26   

Reply

Marsh Posté le 31-08-2009 à 12:54:48    

fgets() renvoie la ligne de texte incluant le retour à la ligne.
Utilise trim() pour retirer ce caractère (soit en ligne 6 lorsque tu insère la ligne dans ton tableau, soit en ligne 11 à 14 au moment de la comparaison).

Reply

Marsh Posté le 31-08-2009 à 13:26:01    

ca irai plus vite avec file(), puisque chaque ligne du fichier correspondrai a une ligne de tableau
 
http://fr2.php.net/manual/fr/function.file.php

Reply

Marsh Posté le 31-08-2009 à 13:55:06    

Finalement le Trim() marche mieux.
 
J'ai essayer la solution du File() selon le manuel, mais il ne me donnait qu'un seul caractère par ligne, le résultat était vraiment chaotique.
 
Merci encore ^^


---------------
Serveur HFR - OpenTTD
Reply

Marsh Posté le 31-08-2009 à 16:23:00    

etrange,

 

si tu fais
$file = file('fichier.txt');
echo $file[0];

 

devrais de retourner la premiere ligne

 

apres un simple foreach sur tout ca

 

$html = array('<td style="background-color:green"><strong>UP</strong></td>', '<td style="background-color:red"><strong>UP</strong></td>');

 

foreach($file as $data)
{
    if($data == 'OK')
    {
        echo $html[0];
    }else
    {
        echo $html[1];
    }
}


Message édité par stealth35 le 31-08-2009 à 16:29:48
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed