Comparaison de string en php [Fermé]

Signaler
-
 aaa -
Bonjour à tous,

j'ai un problème de php que je n'arrive pas à résoudre malgré sa simplicité... Il me faut comparer deux chaines de charactères afin de s'avoir s'il sont absolument identiques et je n'arrive pas à mettre la main sur cette fonction.

Merci de m'aider

6 réponses

Messages postés
141
Date d'inscription
vendredi 24 août 2007
Statut
Membre
Dernière intervention
12 août 2010
26
Hello,

Damien J. a raison, cependant, pour une comparaison stricte mieux vaut utilisé:

if($var1 === $var2) // est strictement identique

plutot que

if($var1 == $var2) // est équivalent...

La différence me diras-tu ? Elle est essentiel, car si $var1='' et $var2=null ou $var2 = 0 ou $var2 = false
$var1 == $var2 retourne true

tandis que

($var1 === $var2 ne retourne true que si les valeurs sont strictement identique

sur ce @pus
23
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 65005 internautes nous ont dit merci ce mois-ci

Bonjour,

Merci pour le "strictement identique". Très utile pour comparer "002" et "02" qui pour moi ne sont pas la meme chose.
Existe-t-il la meme chose pour "strictement différent"???

Merci
> nella
C'est bon, en fait c'est !==
Messages postés
999
Date d'inscription
vendredi 25 janvier 2002
Statut
Contributeur
Dernière intervention
21 octobre 2006
51
salut,
il faut utiliser la fonction strcmp(), prototype:
int strcmp ( string var1, string var2)

strcmp() retourne une valeur inferieure 0 si var1 est inférieur à var2, >0 si var1 est supérieur à var2, 0 si var1==var2.

voila!
Lord AsKy
Un intelligent peut jouer l'imbécile, pas le contraire:-)
Moi j'aurai juste fait :

if($var1 == $var2){
...}
else{
...}

Ca me parait simple et logique... Et entre autre fonctionnel. S'il ne s'agit pas de comparé réellement mais juste de définir si identique ou non, ça devrait suffire.

Damien J.
La solution est simple:

Je suis devant le cas Suivant:
-Poste d'un commentaire avec un champ Par défaut
-Pour un évité des commentaires vide avec le contenu de champ par défaut,
Je le compare donc avec mon texte par défaut à 85/100 ;
et je renvoie vers une version de la page index qui contiens une boite de dialogue qui invite à ne pas oublié le commentaire si la condition est vrai!
(Voir l'exemple concret sur mon site: ho-oui.fr)
(dans ton cas fait une comparaison 100/100)

<?php

$commentaires = trim(htmlspecialchars(stripslashes($_POST['commentaires'])));
$defaut = "Tapez_ici_vos_commentaires";

similar_text($commentaires, $defaut, $pourcentage);
if ($pourcentage>=85)
{
header('Location: index-erreur.html');
}

else {
// ICI LA SUITE DE TON PROGRAMME
}
?>

Badin Christophe
Messages postés
29
Date d'inscription
mercredi 10 juin 2009
Statut
Membre
Dernière intervention
30 mars 2010
1
Au temps pour moi, telle qu'était présenté la situation je ne pensais pas qu'il pourrait avoir à comparer des chaînes vides ou nulles, je n'ai donc pas pensé aux === ^^
Merci de la précision !

Damien J.
J'espère qu'entre juin 2003 et juin 2009, il aura trouvé sa réponse... surtout que c'était "important" :-D
mieux vau tard que jamais ;)
et ca compare aussi les majuscule minuscule ?
ex : Coucou et coucou ca retourne false ?
S'il vous plait c'est vraiment important...

Merci d'avance