[php] chaine -> tableau gros prob

sebalab -  
nEm3sis Messages postés 722 Statut Membre -
Bonjour,

j'ai un gros probleme,

j'ai une chaine di style:

$chaine = ("dossier1","dossier2","dossier3","dossier4"); il y en a bien plus en vrai

je voudrai recuperer chaque nom separement ( dans un tableau se sera plus pratique )

genre print $tab[1]; donne dossier2 sans les ""

j'avai pensé a un explode et comme parametre de sparation le ,mais ca me laisse les ""

comment faire ?

surtout que lorsque j'ai essayer cet explode arrivé à la 4eme ou 5 eme valeur du tableau , la valeur 6 c'est remis dans un tableau en 0

comme dans mon exemple ca donnerai en gros [0] => dossier1 [1] => dossier2 [2] => dossier3 mais ensuite [0] => dossier4 ca reprenai l'index 0 pour les valeurs suivantes etc...

Merci de m'aider dans ma quete je sai plus quoi faire et mon script doit etre pres dans 2 jours

encore merci d'avance
Configuration: Windows XP
Internet Explorer 7.0

7 réponses

  1. nEm3sis Messages postés 722 Statut Membre 113
     
    tu pourai donner ton code ?
    car sans ca je peu pas te dire ce qui va pas
    0
  2. sebalab
     
    Bonjour,

    $ligne = 1;
    $pfichier = fopen ("$nom/ag.TXT","r");
    while ($ch = fgets ($pfichier, 64))
    {
    $tab = explode (',', $ch);

    print_r ($tab);
    $ligne++;
    }
    0
  3. nEm3sis Messages postés 722 Statut Membre 113
     
    et le contenu du fichier ag.TXT

    dsl jsuis pas un expert donc j'ai besoin de pouvoir tester les truc avant de trouver

    si j'arrive a trouver ...
    0
  4. sebalab
     
    désolé mais ca j'ai pas le droit de le devoilé c'est du comptenue d'entreprise privé

    mais y doit bien exister une fonction pour faire ca !!!! seulement je la trouve pas !

    j'ai peut etre trouver une soluce en enlevant les "" dans la chaine par un ereg_replace, le probleme etait que le separateur etait , je l'est remplacé par ** sinon ca m'aurai coupé toute mes phrase à chaque virgule.

    donc je pense avoir trouvé la soluce ( partiel car ca ne resout pas tout , mais ca permet de contourné un peut le probleme.

    merci de t'etre penché dessus , si jammais quelqu'un trouve la fonction, merci de la mettre ici quand meme :)
    a+
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. nEm3sis Messages postés 722 Statut Membre 113
     
    tu peu me montrer juste en changeant les mot pour avoir la structure

    par exemple si dans ton fichier tu a

    dossier1,mr dupond,0147823957
    dossier2,mr allain...

    tu me met
    mot1,mot2,mot3
    mot4,mot5

    c'est juste pour voir la structure les mot je m'en tape
    0
  7. sebalab
     
    ben c'est exactement le contenu de ma chaine:

    mon fichier texte contient

    "mot1","chiffre1","mot2","mot3","donnee1","donnee2", etc...... y en a 34 comme ca , ensuite ca passe a une autre ligne

    ps : dans le script j'ai changer 64 en 1024

    je lirai les prochaines reponses demain aujourd'hui je doit aller me coucher , rdv tot demain
    a+
    0
  8. nEm3sis Messages postés 722 Statut Membre 113
     
    a d'accord pour la chaine j'avai pas tilté :s

    comme dans mon exemple ca donnerai en gros [0] => dossier1 [1] => dossier2 [2] => dossier3 mais ensuite [0] => dossier4 ca reprenai l'index 0 pour les valeurs suivantes etc...
    mes test sont disponible ici :
    http://to.kc.free.fr/Maud/ag.txt
    http://to.kc.free.fr/Maud/test.php

    je contenu du php est :
    <?php
    $ligne = 1;
    $separateur=',';
    $pfichier = fopen ("ag.txt","r");
    while ($ch = fgets ($pfichier, 1024))
    {
    $tab[$ligne] = explode ($separateur, $ch);
    for ($i=0; isset($tab[$ligne][$i]); $i++)
    {
    $tab[$ligne][$i]=str_replace('"', '', $tab[$ligne][$i]);;
    }
    echo '<pre>';
    print_r ($tab[$ligne]);
    echo '</pre>';
    $ligne++;
    }
    echo $tab[1][1].'<br>';
    echo $tab[5][2].'<br>';
    echo $tab[1][3].'<br>';
    echo $tab[5][4].'<br>';
    echo $tab[4][4].'<br>';
    ?>

    je ne sais pas si ca t'aideras
    si non je veu bien essayer autre chose
    mais je crain de ne pas trop comprendre ce que tu demande
    0