Rechercher : dans
Par :

Problème avec boucle

Dernière réponse le 31 oct 2009 à 14:11:28 aviateur39, le 31 oct 2009 à 02:34:44 
 Signaler ce message aux modérateurs

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...
Pierre

Configuration: WINDOWS XP FAM SP3
Firefox 3.0.6

Meilleures réponses pour « Problème avec boucle » dans :
ADSL - Le dégroupage de la boucle locale Voir Introduction au dégroupage de la boucle locale On appelle "boucle locale" la partie finale de la ligne téléphonique arrivant à l'abonné. Afin de vous faire profiter de l'internet à haut débit (ADSL), les Fournisseurs d'Accès à Internet (FAI)...

1

Anonym€, le 31 oct 2009 à 09:14:20
  • +1

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 !


<br /><br /> Vivement la <font> des neiges...

Répondre à Anonym€

3

 aviateur39, le 31 oct 2009 à 14:11:28

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! Pierre

Répondre à aviateur39

2

sonik21, le 31 oct 2009 à 09:16:26

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); 
?> 
It's Hard to concentrate, but if it can Make you feel better ...(?)

Répondre à sonik21
Collection CommentÇaMarche.net