Page 1 sur 1
comparaison
Posté : 22 janv. 2011, 22:37
par yoman
bonjout j'ai un fichier txt et je recupere la derniere ligne le texte de cette ligne est "g"
<?php
$fcontents = file("fichier.txt");
$i_fichier = sizeof($fcontents)-2;
while ($fcontents[$i_fichier]!='' )
{
$i_fichier++;
$tsts = $fcontents[$i_fichier];
$tsts = rtrim($tsts);
echo $tsts;\\=g
}
if ($tsts == "g")
{
print("ok");
}
?>
mon probleme c'est que quand je demande si la variable $tsts est egal à g cela ne fonctionne pas , je ne sais pas d'ou viens mon erreur pourtant g = g
Re: comparaison
Posté : 22 janv. 2011, 23:25
par moogli
Que donne un var_dump($fcontents[ $i_fichier -1]) ?
Tu aura ainsi la derniere ligne ainsi que le nb de caracteres de celle (caracteres blancs compris).
Pourquoi utiliser un while alors que tu peut acceder directement a la derniere ligne ?
@+
Re: comparaison
Posté : 22 janv. 2011, 23:44
par yoman
ben a vrais dire c'est un code que j'ai copier d'un site
je suis apprentie dans le php
mais j'ai vraiment besoin de cette solution pour mon site et je ne connais pas trop le var_dump
je chercher sur le manuel , mais une question aurais t'il une différence pour le resultat "g" = "g" ?
Re: comparaison
Posté : 22 janv. 2011, 23:55
par moogli
Suivant l'encodage pourquoi pas.
Mais bon la le truc c'est d'etre sur qu'il n'y a pas d'espace ou de tabulation avant le g car la pour le coup ' g' != 'g'
Essai le code que j'ai mis au dessus. Tu peut regarder la doc de var_dump sur le site php.net (
http://www.php.net/var_dump)
@+
Re: comparaison
Posté : 23 janv. 2011, 00:08
par yoman
et bien j'ai essayé ton code j'ai bien une réponse g mais cela m'affiche string(3) "g "
<?php
$fcontents = file("fichier.txt");
$i_fichier = sizeof($fcontents);
var_dump($fcontents[ $i_fichier -1]);
$i_fichier++;
$tsts = $fcontents[$i_fichier];
echo $tsts;
if ($tsts == 'g ')
{
print("ok");
}
?>
Re: comparaison
Posté : 23 janv. 2011, 00:17
par yoman
je pense que cela va me prendre encore quelque jours pour trouver la solution lol
Re: comparaison
Posté : 23 janv. 2011, 00:23
par moogli
C'esr donc clair ta derniere ligne ne pas que la lettre g c'est pour cela que ton test echou. Le var_dump te donne le typz (string) mais la "taille" ici 3 il y a 3 caracteres donc deux caracteres "blanc" +g
Essai d'utiliser trim au lieu de rtrim
@+
Re: comparaison
Posté : 23 janv. 2011, 00:34
par yoman
cela me donne le même résultat string(3) "g "
<?php
$fcontents = file("fichier.txt");
$i_fichier = sizeof($fcontents);
var_dump($fcontents[ $i_fichier -1]);
$i_fichier++;
$tsts = $fcontents[$i_fichier];
$tsts = trim($tsts);
echo $tsts;
if ($tsts == 'g')
{
print("ok");
}
?>
Re: comparaison
Posté : 23 janv. 2011, 00:46
par yoman
dans mon fichier txt j'ai un retour a la ligne en dessous de g c peut etre pour ca??
Re: comparaison
Posté : 23 janv. 2011, 00:51
par yoman
j'ai enlever le retour a la ligne et la j'ai bien string(1) "g"
mais bon ma comparaison ne fonctionne toujours pas
Re: comparaison
Posté : 23 janv. 2011, 01:25
par yoman
ok désolé c'est bon maintenant merci du coup de main moogli