Php foreach après foreach avec autre fichier

Résolu
Sggg -  
prosthetiks Messages postés 1189 Date d'inscription   Statut Membre Dernière intervention   -
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

Vardok Messages postés 359 Date d'inscription   Statut Membre Dernière intervention   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
Sggg
 
Tu peux me montrer ce que ça donne sur le code ?
Car là, je vois pas comment faire...
0
chico200987 Messages postés 791 Date d'inscription   Statut Membre Dernière intervention   143
 
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
Vardok Messages postés 359 Date d'inscription   Statut Membre Dernière intervention   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
Vardok Messages postés 359 Date d'inscription   Statut Membre Dernière intervention   133
 
Chacun son tour chico ^^
0
chico200987 Messages postés 791 Date d'inscription   Statut Membre Dernière intervention   143
 
Mouahaha :p
0
tito23 Messages postés 305 Date d'inscription   Statut Membre Dernière intervention   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
chico200987 Messages postés 791 Date d'inscription   Statut Membre Dernière intervention   143
 
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
Vardok Messages postés 359 Date d'inscription   Statut Membre Dernière intervention   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
tito23 Messages postés 305 Date d'inscription   Statut Membre Dernière intervention   4
 
on peut modifier le 10 par une variable :)
0
prosthetiks Messages postés 1189 Date d'inscription   Statut Membre Dernière intervention   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
chico200987 Messages postés 791 Date d'inscription   Statut Membre Dernière intervention   143
 
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
prosthetiks Messages postés 1189 Date d'inscription   Statut Membre Dernière intervention   431
 
Forcément que ça fonctionne xD
0
Sggg
 
Merci beaucoup pour toutes ces réponses !
C'est parfait, j'ai également beaucoup de choix (lol).
0