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 :

[Explode] Présence aléatoire du séparateur


Sujet :

Langage PHP

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 147
    Points : 155
    Points
    155
    Par défaut [Explode] Présence aléatoire du séparateur
    Bonjour,

    j'ai une petite question.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
      $answers = explode(";", $answer_data);
      $possibilities = explode("\n", $data);
    Voici un extrait de code d'un projet que je fais.
    Mon souci c'est que les éléments de possibilities se terminent par un \n
    mais les éléments de answers n'ont pas le ;

    je fais un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    substr($possibilities[$cpt], 0, strlen($possibilities[$cpt]) - 1);
    pour régler le pb des égalités, mais je suis curieux de savoir pourquoi ce comportement ...

    alors que mes données sont :
    "haricot
    petit pois
    epinard"
    pour $data
    et "haricot;petit pois" pour le $answer_data

    PS : on ne se moque pas de mon exemple, c'est culinaire

  2. #2
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    j'ai pas tout compris et je vois pas à quoi sert ton substr

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 147
    Points : 155
    Points
    155
    Par défaut
    par exemple quand je fais

    echo "'$possibilities[$cpt]'";

    la sortie c'est :
    'haricot
    '

    quand je fais
    echo "'$answers[$cpt]'";

    la sortie c'est
    'haricot'

    dans le premier cas, le séparateur fait encore partie de la sous chaine, et pas dans le 2e. le substr sert à l'enlever dans le 1er cas.

  4. #4
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <pre><?php
     
    $s = "haricot
    petit pois
    epinard";
     
    var_dump(explode("\n", $s));
    ?>
    me donne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    array(3) {
      [0]=>
      string(7) "haricot"
      [1]=>
      string(10) "petit pois"
      [2]=>
      string(7) "epinard"
    }
    je n'ai plus le \n qui traine car il a été supprimé par le explode...
    C'est pour ca que je comprends toujours pas ce substr

  5. #5
    Membre actif

    Inscrit en
    Mai 2004
    Messages
    162
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 162
    Points : 264
    Points
    264
    Par défaut
    Il faut regarder avec les \n\r aussi.
    Utilises trim(), ce sera plus propre, voir même de charger directement $possibilities dans un array avec file(), si les données sont dans un fichier.

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 147
    Points : 155
    Points
    155
    Par défaut
    C'est exactement ca

    C'est ce que je venais de vérifier et c'est ca !
    g fait un explode("\r\n" ...)
    ca va bocou mieux tt de suite !

    merci !

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

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