IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

echec d'une comparaison


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 495
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 495
    Billets dans le blog
    1
    Par défaut echec d'une comparaison
    Bonjour,

    je compare 2 variables (if (strtolower($patr[1])==$fstname))) qui, quand je fais un echo semblent identiques, mais que quand j'affiche la longueur des strings, la première fait un caractère de plus : d'où cela peut-il venir et comment le supprimer (car elles devraient être identiques) ?

  2. #2
    Membre extrêmement actif
    Avatar de Golgotha
    Homme Profil pro
    Full-stack Web Developer
    Inscrit en
    Août 2007
    Messages
    1 387
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Full-stack Web Developer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2007
    Messages : 1 387
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par laurentSc Voir le message
    Bonjour,

    je compare 2 variables (if (strtolower($patr[1])==$fstname))) qui, quand je fais un echo semblent identiques, mais que quand j'affiche la longueur des strings, la première fait un caractère de plus : d'où cela peut-il venir et comment le supprimer (car elles devraient être identiques) ?
    Au hasard, un espace ?

    Essaye trim()
    Consultant et développeur full-stack spécialiste du Web
    faq jQuery - règles du forum - faqs web

  3. #3
    Membre Expert
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 495
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 495
    Billets dans le blog
    1
    Par défaut
    J'ai essayé trim (if (trim(strtolower($patr[1]))==trim($fstname))), mais la différence persiste

  4. #4
    Membre extrêmement actif
    Avatar de Golgotha
    Homme Profil pro
    Full-stack Web Developer
    Inscrit en
    Août 2007
    Messages
    1 387
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Full-stack Web Developer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2007
    Messages : 1 387
    Billets dans le blog
    1
    Par défaut
    Je ne suis pas expert en php mais, il devrais y avoir des fonctions de comparaison de chaine.

    Le "==" par expérience n'est jamais sûr...

    Essaye avec similar_text() ou strcmp()

    http://php.net/manual/fr/function.similar-text.php
    http://php.net/manual/fr/function.strcmp.php
    Consultant et développeur full-stack spécialiste du Web
    faq jQuery - règles du forum - faqs web

  5. #5
    Membre Expert
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 495
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 495
    Billets dans le blog
    1
    Par défaut
    J'oubliais, il y a du mieux avec le trim car la longueur des strings est devenue identique, mais la comparaison continue d'échouer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    // deb test             
     
    	echo "patr1=".strtolower($patr[1])."<br>";
    	echo "strlen(patr1)=".strlen(trim(strtolower($patr[1])))."<br>";
    	echo "firstname=".$fstname."<br>";
    	echo "strlen(firstname)=".strlen(trim($fstname))."<br>";
    	echo "test2:".trim((strtolower($patr[1]))==trim($fstname))."<br>";
    	//fin test
     
    	if (strcmp(trim(strtolower($patr[1])),trim($fstname)))
    ...

  6. #6
    Membre extrêmement actif
    Avatar de Golgotha
    Homme Profil pro
    Full-stack Web Developer
    Inscrit en
    Août 2007
    Messages
    1 387
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Full-stack Web Developer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2007
    Messages : 1 387
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par laurentSc Voir le message
    J'oubliais, il y a du mieux avec le trim car la longueur des strings est devenue identique, mais la comparaison continue d'échouer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    // deb test             
     
        echo "patr1=".strtolower($patr[1])."<br>";
        echo "strlen(patr1)=".strlen(trim(strtolower($patr[1])))."<br>";
        echo "firstname=".$fstname."<br>";
        echo "strlen(firstname)=".strlen(trim($fstname))."<br>";
        echo "test2:".trim((strtolower($patr[1]))==trim($fstname))."<br>";
        //fin test
     
        if (strcmp(trim(strtolower($patr[1])),trim($fstname)))
    ...
    Il reste la casse

    faire un strtolower des deux coté.
    Consultant et développeur full-stack spécialiste du Web
    faq jQuery - règles du forum - faqs web

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. souci avec une comparaison de date
    Par Ludo75 dans le forum SQL Procédural
    Réponses: 6
    Dernier message: 20/02/2006, 16h59
  2. Réponses: 3
    Dernier message: 22/09/2005, 11h34
  3. Réponses: 10
    Dernier message: 30/06/2005, 13h20
  4. [MASM] Utiliser un .IF pour une comparaison de nombre signés
    Par Crisanar dans le forum x86 32-bits / 64-bits
    Réponses: 3
    Dernier message: 24/11/2004, 17h32
  5. une comparaison qui marche pas.
    Par gandf dans le forum C++Builder
    Réponses: 7
    Dernier message: 16/02/2004, 16h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo