Récupération chaine de caractère

Eléphant du PHP | 180 Messages

24 nov. 2009, 07:26

Bonjour,

Voilà j'ouvre un fichier :
        $Logfile = file($toto);
        foreach ($Logfile as $Ligne)
        {
        } 
 
Chaque ligne à un nombre que je me serts de référence

1 aaaabbbbcccc
1 sssslklkkkkkk
1 rgehtyjyujkhikj
2 ergegrtghrhtyh
2 zegetrghrhtyht
...

parfois les nombres références sont imbriqués :
1 aaaabbbbcccc
1 sssslklkkkkkk
2 ergegrtghrhtyh
2 zegetrghrhtyht
1 aaaabbbbcccc

Ma question est de pouvoir récuper pour chaque nombre référence le total des caractères qui le suit et de pouvoir avoir par exemple

Pour 1 echo $1 -----> aaaabbbbcccc/sssslklkkkkkk/aaaabbbbcccc

Merci d'avance pour votre aide

Eléphant du PHP | 174 Messages

24 nov. 2009, 07:55

Bonjour,

Il faut que tu arrives à adopter le système suivant :

1) J'ouvre mon fichier en lecture en connaissant le nombre de référence recherché.

2) Pour chaque occurrence de ce nombre, je cherche sa position

3) A chaque position je récupère l'ensemble des caractères sur la ligne.

En code ça te donne la structure suivante :
//ouverture de fichier en lecture (je reviens pas dessus, si tu ne connais pas la doc est ton amie).
$filename = "nom de mon fichier";
$ouverture = fopen("r+",$filename);
$contenu = fread($ouverture,filesize($filename);

//je considère que le nombre de référence est stocké dans $id.
while(il existe une position de $id dans le document plus loin que là où est positionné mon curseur){
  //je récupère la position du $id
  //comme la ligne est du type $id suivi d'un espace, suivi de mes caractères
  //je récupère ma ligne à partir du caractère position $id + 1
  //et je boucle tant que l'élément suivant est une lettre
}

Pour te mettre sur la voie, je t'indique deux fonctions : substr() que tu dois déjà connaître et strpos()

Bon courage, bonne continuation et bonne programmation.
"Il vaut mieux avoir du luxe dans ses sentiments que sur ses habits, je ne crains, moi, le mépris de personne" Honoré De Balzac.
"On s'étonne trop de ce que l'on voit rarement et trop peu de ce que l'on voit chaque jour" Mme de Genlis
"L'absence diminue les médiocres passions et augmente les grandes comme le vent éteint les bougies et allume le feu" La RocheFoucauld
"People have hope because they can't see Death standing behind them" (anonymous)
"Of all the things I've lost, I miss my brain the most" (from a fanfic)

Eléphant du PHP | 180 Messages

24 nov. 2009, 08:15

J'utilise déjà ces fonctions je récupère bien les ligne que je veut récuperer mais le défaut c'est que le resultat récuperer sur chaque ligne du même $id je n'arrive pas a le concaténer dans une variable par exemple $contenu avec xxxx/yyyy/zzzzz....

Eléphant du PHP | 174 Messages

24 nov. 2009, 10:38

Bon alors avant de commencer je tiens juste à dire (et je suis désolée que ça tombe sur toi, ça aurait pu arriver à un autre XD) mais relis-toi !!!!
Oui je sais, j'ai un problème avec les fautes d'orthographe, de grammaire, de conjugaison et je suis une chieuse :)

Bon sinon euh... tu peux faire une concaténation classique.
Tu déclares $contenu = ""; au début de ton programme et à chaque fois que tu récupères une ligne tu ajoutes $contenu.=tachainedecaractèrerécupérée.
"Il vaut mieux avoir du luxe dans ses sentiments que sur ses habits, je ne crains, moi, le mépris de personne" Honoré De Balzac.
"On s'étonne trop de ce que l'on voit rarement et trop peu de ce que l'on voit chaque jour" Mme de Genlis
"L'absence diminue les médiocres passions et augmente les grandes comme le vent éteint les bougies et allume le feu" La RocheFoucauld
"People have hope because they can't see Death standing behind them" (anonymous)
"Of all the things I've lost, I miss my brain the most" (from a fanfic)