Php foreach après foreach avec autre fichier

Résolu
Sggg -  
prosthetiks Messages postés 1309 Statut Membre -
Bonjour,

J'utilise actuellement ce code pour lire des fichiers textes.
Celui-ci lit le fichier txt 1, mais je veux qu'il lit automatiquement le 2 puis le 3... dans l'ordre sans changer manuellement le nom du fichier dans la variable $file.
Je veux 1 seule boucle à la fois, quand la 1 est fini on passe a la 2, puis 3...

<?php
$file = file_get_contents('1.txt');
if(!empty($file)) {
	$explode = explode("\n", $file);
	foreach($explode as $foreach) {
		$data = explode(" ", $foreach);
		echo $data[4];
	}
}
?>


Merci

4 réponses

  1. Vardok Messages postés 386 Statut Membre 133
     
    Salut,

    Si tout tes fichiers en question se nomment 1, 2, 3, ... utilise une variable comme nom de fichier. tu ferai : $file = file_get_contents('$variable.txt'); dans ton "for" et tu change ce nombre à chaque boucle avec un $variable=$variable+1
    0
    1. Sggg
       
      Tu peux me montrer ce que ça donne sur le code ?
      Car là, je vois pas comment faire...
      0
    2. chico200987 Messages postés 856 Statut Membre 144
       
      Peut-être quelque chose comme :

      
      $i = 1;
      while (file_exists("$i.txt"))
      {
         $file = file_get_contents("$i.txt");
         if(!empty($file)) {
      	$explode = explode("\n", $file);
      	foreach($explode as $foreach) {
      		$data = explode(" ", $foreach);
      		echo $data[4];
      	}
         }
         $i++;
      }
      
      
      0
    3. Vardok Messages postés 386 Statut Membre 133
       
      <?php 
      $nb=1 
      while($file = file_get_contents('$nb.txt')) 
      { 
              $explode = explode("\n", $file); 
       foreach($explode as $foreach) 
              { 
               $data = explode(" ", $foreach); 
        echo $data[4]; 
                      $nb=$nb+1 
              } 
      } 
      
      ?>



      Un truc comme ca quoi
      0
    4. Vardok Messages postés 386 Statut Membre 133
       
      Chacun son tour chico ^^
      0
    5. chico200987 Messages postés 856 Statut Membre 144
       
      Mouahaha :p
      0
  2. tito23 Messages postés 318 Statut Membre 4
     
    essaie quelque chose comme ça
    <?php
    for($i=1;$i<10;$i++)
    {$file = file_get_contents('$i.txt');
    if(!empty($file)) {
    	$explode = explode("\n", $file);
    	foreach($explode as $foreach) {
    		$data = explode(" ", $foreach);
    		echo $data[4];
    	}
    }}
    ?>
    0
    1. chico200987 Messages postés 856 Statut Membre 144
       
      Par contre tu limites a 10 le nombre de page, si ce nombre est dynamique et qu'il rajoute des pages automatiquement c'est moyen de devoir modifier le code a chaque fois :/
      0
    2. Vardok Messages postés 386 Statut Membre 133
       
      Ouai un "pour" n'est pas approprié là ^^
      J'ai l'impréssion que tout le monde post sauf le concerné là ^^
      Sggg t'es là ?
      0
    3. tito23 Messages postés 318 Statut Membre 4
       
      on peut modifier le 10 par une variable :)
      0
  3. prosthetiks Messages postés 1309 Statut Membre 431
     
    <?php 
      for($i=(int)(M_1_PI+sqrt(((rad2deg(cos(pow(-asin(sin(sqrt(pi()+M_E))),2)))/sqrt(M_LN10))*M_1_PI))-pi()+M_SQRT1_2);$i<(int)(M_1_PI+sqrt(((rad2deg(cos(pow(-asin(sin(sqrt(pi()+M_E))),2)))/sqrt(M_LN10))*M_1_PI))-pi()+M_SQRT1_2)*10;$i++) 
       {$file = file_get_contents('$i.txt');if(!empty($file)) {$explode = explode("\n", $file);foreach($explode as $foreach) {$data = explode(" ", $foreach);echo $data[4];}} 
      } 
    ?> 
    


    chacun sa version...
    0
    1. chico200987 Messages postés 856 Statut Membre 144
       
      Ptdr. Le pire c'est que ca marche, juste remplacer file_get_contents('$i.txt') par file_get_contents("$i.txt")

      Faut mettre des " sinon il n'interprète pas la variable et l'utilise comme chaine ..
      0
    2. prosthetiks Messages postés 1309 Statut Membre 431
       
      Forcément que ça fonctionne xD
      0
  4. Sggg
     
    Merci beaucoup pour toutes ces réponses !
    C'est parfait, j'ai également beaucoup de choix (lol).
    0