[PHP] "Limiter une boucle" ?


Audiofeeline
WRInaute accro
WRInaute accro
 
Messages: 5257
Inscription: 20 Oct 2005

[PHP] "Limiter une boucle" ?

Message le Mar Juil 31, 2007 15:20

Salut,
je suis en train de bricoler un parser PHP mais pour l'instant j'ai ça :
Code: Tout sélectionner
<?php
$xml = simplexml_load_file('http://www.nextref.com/rss.php');
foreach($xml->item as $rssinfos)
{
echo '<div id="announce" class="block">
<h2><a href="'.$rssinfos->link.'">'.htmlentities(utf8_decode($rssinfos->title)).'</a></h2>
<div class="box">
<div class="inbox">'.htmlentities(utf8_decode($rssinfos->description)).'</div>
</div>
</div>';
}
?>


En fait je voudrai limiter le nombre d'article parsé, comment faire ?
Merci ! :)

chtipepere
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 493
Inscription: 8 Jan 2004

Message le Mar Juil 31, 2007 15:30

Il te suffit de rajouter un compteur.
Tu initialises ton compteur avant la boucle, tu l'incrémentes pendant, et tu t'arrêtes au moment voulu.
Exemple :
Code: Tout sélectionner
<?php
$xml = simplexml_load_file('http://www.nextref.com/rss.php');
//initialisation du compteur
$compteur = 1;
//nombre d'articles à parser
$nbArt2Parse = 10;
foreach($xml->item as $rssinfos)
{
//On sort de la boucle quand le compteur atteint le nombre d'articles à parser
if($compteur == $nbArt2Parse) break;
echo '<div id="announce" class="block">
<h2><a href="'.$rssinfos->link.'">'.htmlentities(utf8_decode($rssinfos->title)).'</a></h2>
<div class="box">
<div class="inbox">'.htmlentities(utf8_decode($rssinfos->description)).'</div>
</div>
</div>';
//On incrémente le compteur
$compteur++;
}
?>


Bon courage


Audiofeeline
WRInaute accro
WRInaute accro
 
Messages: 5257
Inscription: 20 Oct 2005

Message le Mar Juil 31, 2007 15:39

Ah ok, c'est le "break" que j'avais mal compris...
Parcontre un $compteur = 0; est plus approprié je pense !
Merci de l'astuce ! :)

chtipepere
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 493
Inscription: 8 Jan 2004

Message le Mar Juil 31, 2007 15:47

Si tu initialises ton compteur à 0, alors pour afficher 10 articles, tu devras arrêter ta variable à 9...
Je pense donc que 1 est plus approprié.


Audiofeeline
WRInaute accro
WRInaute accro
 
Messages: 5257
Inscription: 20 Oct 2005

Message le Mar Juil 31, 2007 16:06

Je viens d'essayer et je confirme...
Avec $nbArt2Parse = 10; j'ai 9 billets d'affichés...
Comprend pô... :roll:

chtipepere
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 493
Inscription: 8 Jan 2004

Message le Mar Juil 31, 2007 16:18

Grosse édition :
Code: Tout sélectionner
$compteur = 0;
$nbArt2Parse = 10;
for(...)
{
if($compteur == 10) break;
//traitement
$compteur++;
}

En fait, t'as raison, faut le mettre à 0 :arrow:
Dernière édition par chtipepere le Mar Juil 31, 2007 16:20, édité 1 fois.


Audiofeeline
WRInaute accro
WRInaute accro
 
Messages: 5257
Inscription: 20 Oct 2005

Message le Mar Juil 31, 2007 16:20

Pas essayé mais ajouter 1 à rien pas certain que ça marche...
Mais bon, c'est un détail... ;)


phpmikedu83
WRInaute passionné
WRInaute passionné
 
Messages: 1281
Inscription: 6 Aoû 2005

Message le Mar Juil 31, 2007 16:21

Audiofeeline a écrit:Je viens d'essayer et je confirme...
Avec $nbArt2Parse = 10; j'ai 9 billets d'affichés...
Comprend pô... :roll:


Tu veux qu'on te remémore des vieux souvenirs de mathématiques qui parlaient d'intervals et de piquets???

1 aspirine, et c'est parti :lol:


Audiofeeline
WRInaute accro
WRInaute accro
 
Messages: 5257
Inscription: 20 Oct 2005

Message le Mar Juil 31, 2007 17:32

phpmikedu83 a écrit:Tu veux qu'on te remémore des vieux souvenirs de mathématiques

Naaaaaaaaaaaaaaaaan!!!!
(Prend ses jambes à son cou)


rog
WRInaute passionné
WRInaute passionné
 
Messages: 1662
Inscription: 21 Sep 2006

Message le Mer Aoû 01, 2007 2:50

1) la boucle s'arrete à 10
2) le break est avant le traitement

donc tu traite de 0 à 9

rog


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités