Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1164 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  [PHP] Comparaison de chaine d'un fichier

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[PHP] Comparaison de chaine d'un fichier

n°1919821
chico008
what the wookie says ?
Posté le 31-08-2009 à 11:58:26  profilanswer
 

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
mood
Publicité
Posté le 31-08-2009 à 11:58:26  profilanswer
 

n°1919835
jeff@be
Posté le 31-08-2009 à 12:54:48  profilanswer
 

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).

n°1919846
stealth35
Posté le 31-08-2009 à 13:26:01  profilanswer
 

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

n°1919856
chico008
what the wookie says ?
Posté le 31-08-2009 à 13:55:06  profilanswer
 

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
n°1919967
stealth35
Posté le 31-08-2009 à 16:23:00  profilanswer
 

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

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  [PHP] Comparaison de chaine d'un fichier

 

Sujets relatifs
VBA - Macro d'enregistrement de Fichier ac date du jour / automatiqueComment télécharger ce fichier flash avec des paramètres dans l'url ?
Modification du fichier text, en position XX de la ligne ZZ[PHP] injection sql (MS SQL)
problème de comparaison de deux fichiersPointeur de fichier en paramètre
PHP ajout page automatique video AIDE SVP :) !!!Page PHP pour réactiver des comptes sur un forum
[WAMP]code PHP non interprétéPHP - fonction escapeshellcmd()
Plus de sujets relatifs à : [PHP] Comparaison de chaine d'un fichier


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR