[RESOLU] probleme avec la fonction explode

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [RESOLU] probleme avec la fonction explode

Re: probleme avec la fonction explode

par laura7 » 19 nov. 2018, 12:39

Bonjour, super! merci pour ton aide ( encore une fois hihi)

je suis finalement arrivée à la fonction suivante (voir code...) et vu que je mets ça dans des labels, j'ai su faire un affichage bien propre :D

Code : Tout sélectionner

function lecture($fichier){ $lines= file($fichier); foreach ($lines as $lineNumber => $lineContent){ } echo "<div style='margin-left:20px;'><br> Nombre d'inscrits : $lines[0]</div>" ; ?> <br><label name="nom">Participants : </label><br><br> <?php for ($cptr=1; $cptr<49; $cptr++) { if ($lines[$cptr] != ""){ $string = explode(' ', $lines[$cptr], 4); for($mots=0;$mots<=3;$mots++){ //$val="val".$cptr.$mots; if($string[$mots] != ""){ $val = $string[$mots]; ?> <label name="nom" value=""><?php echo $val; ?></label> <?php } else{ break; } } echo '<br>'; } if ($lines[$cptr] == ""){ break; } } return; }

Re: probleme avec la fonction explode

par two3d » 19 nov. 2018, 11:55

Quand on utilise des crochets, il est préférable d'entourer la variable avec des accolades:
echo " {$string[$mots]}";

Re: probleme avec la fonction explode

par two3d » 19 nov. 2018, 11:54

erreur de frappe: tring au lieu de string:
                                    echo " $tring[$mots]";
                                    echo 'bonjour';

Re: probleme avec la fonction explode

par Saian » 18 nov. 2018, 18:39

Salut, si j'ai bien compris la structure du fichier tu peux faire comme ça :

Code : Tout sélectionner

<?php function lecture1($fichier) { $lines = file($fichier); $registered = array_shift($lines); echo '<br><br>Nombre d\'inscrits : '.$registered; echo '<br><br>Participants : <br>'; foreach ($lines as $line) echo $line.'<br/>'; } function lecture2($fichier) { $lines = file($fichier); $registered = array_shift($lines); echo '<br><br>Nombre d\'inscrits : '.$registered; echo '<br><br>Participants : <br>'; foreach ($lines as $line) { $words = explode(' ', $line); foreach ($words as $word) echo $word.' '; echo '<br/>'; } }
Si dans le fichier, les données sont séparées par des espaces et que tu veux les afficher séparées par des espaces, il suffit d'afficher la ligne (lecture1).

Mais je t'ai mis l'exemple complet dans lecture 2.

probleme avec la fonction explode

par laura7 » 18 nov. 2018, 13:59

Bonjour à tous

quand j’exécute ce code il m'affiche bien le contenu du fichier

Code : Tout sélectionner

<?php function lecture($fichier){ $lines= file($fichier); foreach ($lines as $lineNumber => $lineContent){ } echo "<br><br>Nombre d'inscrits : $lines[0]"; echo "<br><br>Participants : <br>"; for ($cptr=1; $cptr<49; $cptr++) { if ($lines[$cptr] != ""){ echo "<br> $lines[$cptr]"; } } return; }
quand je veux utiliser le code suivant avec explode et print_r pour récupérer chaque mot (en vue de pouvoir formater mon affichage) le code affiche bien le contenu donc les valeurs sont bien récupérées et lues au bon endroit dans mon fichier

Code : Tout sélectionner

<?php function lecture($fichier){ $lines= file($fichier); foreach ($lines as $lineNumber => $lineContent){ } echo "<br><br>Nombre d'inscrits : $lines[0]"; echo "<br><br>Participants : <br>"; for ($cptr=1; $cptr<49; $cptr++) { if ($lines[$cptr] != ""){ print_r(explode(' ', $lines[$cptr], 4)); } } return; }
ce qui m'affiche : Participants :
Array ( [0] => nom1 [1] => prenom1[2] => accompagnant [3] => mailcontact) bonjourArray ( [0] => nom2[1] => prenom2[2] => accompagnant ) bonjour... et ainsi de suite jusqua la fin de mon fichier


mais ce que je veux afficher c'est
nom1 prenom1 mailcontact
nom2 prenom2
......
voici le code que je voudrais qui fonctionne :

Code : Tout sélectionner

function lecture($fichier){ $lines= file($fichier); foreach ($lines as $lineNumber => $lineContent){ } echo "<br><br>Nombre d'inscrits : $lines[0]"; echo "<br><br>Participants : <br>"; for ($cptr=1; $cptr<49; $cptr++) { if ($lines[$cptr] != ""){ $string = explode(' ', $lines[$cptr], 4); for($mots=0;$mots<=4;$mots++){ echo " $tring[$mots]"; echo 'bonjour'; } } } return; }
mais dans ce cas il ne m'affiche plus que "bonjourbonjourbonjourbonjour......
donc il passe bien dans la boucle mais ne m'affiche pas les valeurs contenues dans $string

Merci d'avance pour vos réponses :wink: