Problème avec boucle

Fermé
aviateur39 Messages postés 7 Date d'inscription mardi 10 février 2009 Statut Membre Dernière intervention 31 octobre 2009 - 31 oct. 2009 à 02:34
aviateur39 Messages postés 7 Date d'inscription mardi 10 février 2009 Statut Membre Dernière intervention 31 octobre 2009 - 31 oct. 2009 à 14:11
Bonjour,

J'ai ce script php qui permet de lire toutes les données dans un fichier de format txt... je souhaiterai aller lire les 10 dernières entrées du fichier, donc lire la dernière et remonter... je pense qu'il me faut insérer une formule du type for et while, j'ai fait plusieurs essais sans toutefois y arriver j'ai des erreurs du type Parse error: syntax error, unexpected '}', expecting T_WHILE in ...

voici le script qui lit mes données sans la boucle car cela ne marche pas...

*********************************************

<HTML>
<body>
<?php
$ouvre=fopen("../data/derniersmembres.txt","r"); // ouverture du fichier
while (!feof ($ouvre)) // tant que pas en fin de fichier
{

$lecture = fgets($ouvre, 4096); // stockage dans $lecture
$donnee=explode("*",$lecture); // parsing des données basé sur "*")

$combien=count($donnee)-1; // nbre d'éléments séparés par "*"
for ($i=0;$i<=$combien;$i++)
{
echo $donnee[$i],"<br>"; // affichage des données
}

}
fclose($ouvre); // fermeture
?>
</body>
</HTML>
***********************************************

Donc ce petit script de lecture fonctionne bien tel quel... Si quelqu'un sur le forum peut m'aider pour insérer une boucle qui irait lire les 5 ou 10 dernières lignes (qui représentent les 5 ou 10 derniers membres inscrit sur le portail de l'association, je suis à l'écoute ...

D'avance merci pour l'aide éventuelle qui pourrait venir de l'un de vous qui est féru en la matière...

Bonne fin de journée à tous...

2 réponses

Utilisateur anonyme
31 oct. 2009 à 09:14
Salut,

Je ne sais pas trop comment est rédigé ton fichier derniersmembres.txt mais bon, j'ai une solution pour toi qui peut surement s'adapter à tes besoins.

<?php

$fichier = file('../data/derniersmembres.txt');

$nbr_lignes_fichier = count($fichier);

$i = '0';

foreach ( $fichier as $ligne ) {
	if ( $i >= $nbr_lignes_fichier - 10 ) {
		echo $ligne.'<br />';
	}
	$i++;
}

?>


Si tu as des questions, n'hésite pas !


1
aviateur39 Messages postés 7 Date d'inscription mardi 10 février 2009 Statut Membre Dernière intervention 31 octobre 2009
31 oct. 2009 à 14:11
Merci beaucoup pour la réponse, ça fonctionne très bien...
Merci à tous sur le forum pour l'aide apportée
Bonne journée à tous!
0
Utilisateur anonyme
31 oct. 2009 à 09:16
Tu peux aussi faire ça en "inversant" la boucle for() :
<?php
$ouvre=fopen("txt.txt","r"); 
while(!feof ($ouvre)) 
{

$lecture = fgets($ouvre, 4096); 
$donnee=explode("*",$lecture); 

$combien=count($donnee)-1;
for($i=$combien;$i>$combien-10;$i--)  //on lit de là fin et on remonte //jusqu'à la 10ème donnée en partant de la fin
{
echo $donnee[$i],"<br>"; 
}

}
fclose($ouvre); 
?> 
0