Comparaison chaines php
Résolu/Fermé
cecile302
Messages postés
36
Date d'inscription
jeudi 8 octobre 2009
Statut
Membre
Dernière intervention
1 juillet 2016
-
15 nov. 2010 à 16:07
cecile302 Messages postés 36 Date d'inscription jeudi 8 octobre 2009 Statut Membre Dernière intervention 1 juillet 2016 - 18 nov. 2010 à 13:28
cecile302 Messages postés 36 Date d'inscription jeudi 8 octobre 2009 Statut Membre Dernière intervention 1 juillet 2016 - 18 nov. 2010 à 13:28
A voir également:
- Comparer deux string php
- Easy php - Télécharger - Divers Web & Internet
- Deux ecran pc - Guide
- Deux comptes whatsapp - Guide
- Itinéraire google map entre deux adresses - Guide
- Faire deux colonnes sur word - Guide
5 réponses
effectivement,
de mon côté j'ai testé avec un trim qui efface tout ce qui est en trop sans avoir besoin de préciser :
$fichier="courant.txt"; //fichier comprenant les adresses ip
$tabfich=file($fichier);
$compte=count($tabfich);
for( $i = 0 ; $i <$compte ; $i++ )
{
$adressmemo=trim($tabfich[$i]);
$monadresse=strval($REMOTE_ADDR);
if (strcmp($adressmemo,$monadresse)==0)
{
echo "adresses similaires :". $adressmemo." ".$monadresse."<br>";
}
else
{
echo "adresses différentes :".$adressmemo." ".$monadresse."<br>";
}
}
de mon côté j'ai testé avec un trim qui efface tout ce qui est en trop sans avoir besoin de préciser :
$fichier="courant.txt"; //fichier comprenant les adresses ip
$tabfich=file($fichier);
$compte=count($tabfich);
for( $i = 0 ; $i <$compte ; $i++ )
{
$adressmemo=trim($tabfich[$i]);
$monadresse=strval($REMOTE_ADDR);
if (strcmp($adressmemo,$monadresse)==0)
{
echo "adresses similaires :". $adressmemo." ".$monadresse."<br>";
}
else
{
echo "adresses différentes :".$adressmemo." ".$monadresse."<br>";
}
}
Coucou c'est PersonneNeMAime alors c'etait les caracteres retour charriot, j'ai fais des tests et la, ca marche :
<?
$fichier="courant.txt"; //fichier comprenant les adresses ip
$tabfich=file($fichier);
$compte=count($tabfich);
for($i=0;$i<$compte;$i++)
{
$adressmemo=$tabfich[$i];
$adressmemo=str_replace(chr(10), "", $adressmemo);
$adressmemo=str_replace(chr(13), "", $adressmemo);
$monadresse=$_SERVER["REMOTE_ADDR"];
if ($adressmemo == $monadresse)
{
echo "adresses similaires :". $adressmemo." ".$monadresse."<br>";
}
else
{
echo "adresses différentes :". $adressmemo." ".$monadresse."<br>";
}
}
?>
<?
$fichier="courant.txt"; //fichier comprenant les adresses ip
$tabfich=file($fichier);
$compte=count($tabfich);
for($i=0;$i<$compte;$i++)
{
$adressmemo=$tabfich[$i];
$adressmemo=str_replace(chr(10), "", $adressmemo);
$adressmemo=str_replace(chr(13), "", $adressmemo);
$monadresse=$_SERVER["REMOTE_ADDR"];
if ($adressmemo == $monadresse)
{
echo "adresses similaires :". $adressmemo." ".$monadresse."<br>";
}
else
{
echo "adresses différentes :". $adressmemo." ".$monadresse."<br>";
}
}
?>
Salut,
pour comparer 2 chaines en php, il utiliser strcmp
https://www.php.net/manual/fr/function.strcmp.php
a+
pour comparer 2 chaines en php, il utiliser strcmp
https://www.php.net/manual/fr/function.strcmp.php
a+
cecile302
Messages postés
36
Date d'inscription
jeudi 8 octobre 2009
Statut
Membre
Dernière intervention
1 juillet 2016
1
16 nov. 2010 à 09:51
16 nov. 2010 à 09:51
Merci de m'avoir répondu, j'ai pensé à la fonction strcmp, mais le résultat es le même, il distingue systématiquement les deux valeurs et les considère comme différentes, le problème étant que l'une est une adresse ip, et l'autre vient d'un fichier
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
cecile302
Messages postés
36
Date d'inscription
jeudi 8 octobre 2009
Statut
Membre
Dernière intervention
1 juillet 2016
1
17 nov. 2010 à 12:29
17 nov. 2010 à 12:29
Merci beaucoup Jean Marie, ta solution fonctionne ^^, meme si j'ai pas vraiment compris pourquoi ça ne fonctionnait pas chez mois :s
en tout cas là c'est parfait
Merci aussi aux autres, et notamment a toi "personnenemaime" qui m'a retrouvée jusqu'ici
en tout cas là c'est parfait
Merci aussi aux autres, et notamment a toi "personnenemaime" qui m'a retrouvée jusqu'ici
Reivax962
Messages postés
3672
Date d'inscription
jeudi 16 juin 2005
Statut
Membre
Dernière intervention
11 février 2021
1 011
17 nov. 2010 à 13:46
17 nov. 2010 à 13:46
Bonjour,
C'est pas bien de rester sans comprendre le pourquoi du comment ^^
Le problème venait de la fonction file(), qui, par défaut, garde les retours à la ligne dans les valeurs du tableau.
C'est un caractère qui ne se voit pas en HTML... Par contre, si tu avais fait "afficher la source" sur ta page de résultats, tu aurais vu ce retour à la ligne !
Pour information, ce comportement de la fonction file() est modifiable : https://www.php.net/manual/fr/function.file.php
Donc en remplaçant
$tabfich=file($fichier);
par
$tabfich=file($fichier, FILE_IGNORE_NEW_LINES);
Tu aurais aussi résolu ton problème.
Xavier
C'est pas bien de rester sans comprendre le pourquoi du comment ^^
Le problème venait de la fonction file(), qui, par défaut, garde les retours à la ligne dans les valeurs du tableau.
C'est un caractère qui ne se voit pas en HTML... Par contre, si tu avais fait "afficher la source" sur ta page de résultats, tu aurais vu ce retour à la ligne !
Pour information, ce comportement de la fonction file() est modifiable : https://www.php.net/manual/fr/function.file.php
Donc en remplaçant
$tabfich=file($fichier);
par
$tabfich=file($fichier, FILE_IGNORE_NEW_LINES);
Tu aurais aussi résolu ton problème.
Xavier
cecile302
Messages postés
36
Date d'inscription
jeudi 8 octobre 2009
Statut
Membre
Dernière intervention
1 juillet 2016
1
18 nov. 2010 à 09:12
18 nov. 2010 à 09:12
je comprend mieux, si j'avais su ça, j'aurais gagné beaucoup de temps par le passé :s
Mais qu'est ce que m'apporte la fonction trim alors ? elle ne prend en compte que les saisies textuelles ?
Mais qu'est ce que m'apporte la fonction trim alors ? elle ne prend en compte que les saisies textuelles ?
Reivax962
Messages postés
3672
Date d'inscription
jeudi 16 juin 2005
Statut
Membre
Dernière intervention
11 février 2021
1 011
18 nov. 2010 à 09:19
18 nov. 2010 à 09:19
La fonction trim() supprime les blancs en bout de chaînes (espaces au début ou à la fin, sauts de lignes au début ou à la fin...), donc cela revient au même que d'utiliser FILE_IGNORE_NEW_LINES.
Ce sont deux solutions à mon avis équivalentes.
Ce sont deux solutions à mon avis équivalentes.
cecile302
Messages postés
36
Date d'inscription
jeudi 8 octobre 2009
Statut
Membre
Dernière intervention
1 juillet 2016
1
18 nov. 2010 à 13:28
18 nov. 2010 à 13:28
je viens de voir ça, en tout cas merci, grâce a vous tous, j'ai fait un bon!