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 :

switch case non vérifié


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 82
    Points : 43
    Points
    43
    Par défaut switch case non vérifié
    Bonjour,

    J'ai un soucis avec un switch case sur une string. (la string provient d'un flux XML parsé avec simplexml)

    Mon soucis vient du fait que "case 'Crêperie - Snack - Pizzéria'" n'est jamais vrai.

    Ligne du flux XML incriminée:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <CATEGORIE>Crêperie - Snack - Pizzéria</CATEGORIE>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    foreach ($fluxXml->$path as $articles)
    	{
     
    		switch($articles->CATEGORIE)
    		{
    			case 'Restaurants d\'altitude':
    			$sousmenu_id = '200';
    			break;
     
    			case 'Bars - Restaurants':
    			$sousmenu_id = '300';
    			break;
     
    			case 'Crêperie - Snack - Pizzéria':
    			$sousmenu_id = '400';
    			break;
    		}
    Si quelqu'un a une idée, je suis preneur

    Merci beaucoup par avance

  2. #2
    Membre confirmé Avatar de rikemSen
    Homme Profil pro
    Analyste Développeur Web - Fizzup.com
    Inscrit en
    Décembre 2007
    Messages
    387
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Analyste Développeur Web - Fizzup.com
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 387
    Points : 540
    Points
    540
    Par défaut
    Fais un echo de $articles->CATEGORIE Et vérifie la valeur.

    Peut-être un problème d'accent? Vu que c'est la seule "case" avec des accents..
    Si ce que tu as à dire n'est pas plus beau que le silence, alors tais toi.

    - Pensez à voter pour les messages qui vous ont été utiles ainsi que de mettre

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 82
    Points : 43
    Points
    43
    Par défaut
    Déjà fait, j'ai même fait un copier/coller de l'echo dans mon case pour être certain........

  4. #4
    Membre confirmé Avatar de rikemSen
    Homme Profil pro
    Analyste Développeur Web - Fizzup.com
    Inscrit en
    Décembre 2007
    Messages
    387
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Analyste Développeur Web - Fizzup.com
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 387
    Points : 540
    Points
    540
    Par défaut
    Je pense toujours que ça doit être une erreur d'accent mal interprété ou qqc du genre.

    Essaye de virer les accents de Crêperie et Pizzéria. Fait un test.... Vu que les deux autres fonctionnent et n'ont pas d'accents ...
    Si ce que tu as à dire n'est pas plus beau que le silence, alors tais toi.

    - Pensez à voter pour les messages qui vous ont été utiles ainsi que de mettre

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 82
    Points : 43
    Points
    43
    Par défaut
    Moi aussi je pense que c'est un problème d'accent.
    Comment est-ce que je peux contourner le soucis?

    Je pensais que des tests sur des string avec caractères spéciaux fonctionnaient?

    Merci pour votre réponse

  6. #6
    Membre confirmé Avatar de rikemSen
    Homme Profil pro
    Analyste Développeur Web - Fizzup.com
    Inscrit en
    Décembre 2007
    Messages
    387
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Analyste Développeur Web - Fizzup.com
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 387
    Points : 540
    Points
    540
    Par défaut
    Bah normalement ça devrait marcher même avec des accents mais bon...

    Essaye:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    $test = 'Crêperie - Snack - Pizzéria';
    		switch($test)
    		{
    			case 'Restaurants d\'altitude':
    			$sousmenu_id = '200';
    			break;
     
    			case 'Bars - Restaurants':
    			$sousmenu_id = '300';
    			break;
     
    			case 'Crêperie - Snack - Pizzéria':
    			$sousmenu_id = '400';
    			break;
    		}
    Un autre test:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    $test = 'Creperie - Snack - Pizzeria';
    		switch($test)
    		{
    			case 'Restaurants d\'altitude':
    			$sousmenu_id = '200';
    			break;
     
    			case 'Bars - Restaurants':
    			$sousmenu_id = '300';
    			break;
     
    			case 'Creperie - Snack - Pizzeria':
    			$sousmenu_id = '400';
    			break;
    		}
    Si ce que tu as à dire n'est pas plus beau que le silence, alors tais toi.

    - Pensez à voter pour les messages qui vous ont été utiles ainsi que de mettre

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 82
    Points : 43
    Points
    43
    Par défaut
    Hé hé hé....Les deux fonctionnent!
    C'est fou ça

    Pour trouver la raison....Ca va être une autre affaire

  8. #8
    Membre éclairé
    Inscrit en
    Juillet 2003
    Messages
    625
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 625
    Points : 673
    Points
    673
    Par défaut
    Bonjour,

    quand tu fais un :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    echo '<pre>';
    var_dump($fluxXml->$path);
    echo '</pre>';

    avant le foreach, ça donne quoi ?

    peut être y a t il des espaces ou caractères en trop ?

    essayé avec un trim ?
    Le savoir est utile que s'il est partagé par tous.
    /(bb|[^b]{2})/
    !sleep() ? array((string))

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 82
    Points : 43
    Points
    43
    Par défaut
    Bonjour et merci pour la réponse....

    No way:

    object(SimpleXMLElement)#14 (1) {
    [0]=>
    string(29) "Crêperie - Snack - Pizzéria"
    }

    idem avec trim

    Je sèche.......

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 82
    Points : 43
    Points
    43
    Par défaut
    La solution si ça peut aider qq un:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    case utf8_encode('Crêperie - Snack - Pizzéria'):
    $sousmenu_id = '400';
    break;

  11. #11
    Membre confirmé Avatar de rikemSen
    Homme Profil pro
    Analyste Développeur Web - Fizzup.com
    Inscrit en
    Décembre 2007
    Messages
    387
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Analyste Développeur Web - Fizzup.com
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 387
    Points : 540
    Points
    540
    Par défaut
    J'y avais pensé mais ça affichait des caractères bizarres différents de la chaine crêperie etc... alors j'avais mis de coté :/

    Content d'avoir pu t'aider.
    Si ce que tu as à dire n'est pas plus beau que le silence, alors tais toi.

    - Pensez à voter pour les messages qui vous ont été utiles ainsi que de mettre

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 28/05/2006, 13h00
  2. [Tableaux] Problème avec Switch case
    Par philippef dans le forum Langage
    Réponses: 4
    Dernier message: 07/09/2005, 16h37
  3. probleme gestion condition switch - case
    Par DarkMax dans le forum Langage
    Réponses: 5
    Dernier message: 07/09/2005, 14h25
  4. [Language] aide sur les switch case
    Par pouss dans le forum Langage
    Réponses: 3
    Dernier message: 05/04/2005, 11h34
  5. case non constant
    Par jul54 dans le forum MFC
    Réponses: 4
    Dernier message: 04/02/2004, 14h08

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