[PHP] "Limiter une boucle" ?

Audiofeeline

WRInaute accro
Salut,
je suis en train de bricoler un parser PHP mais pour l'instant j'ai ça :
Code:
<?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
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:
<?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
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
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é.
 

chtipepere

WRInaute occasionnel
Grosse édition :
Code:
$compteur = 0;
$nbArt2Parse = 10;
for(...)
{
if($compteur == 10) break;
//traitement
$compteur++;
}
En fait, t'as raison, faut le mettre à 0 :arrow:
 

phpmikedu83

WRInaute passionné
Audiofeeline a dit:
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:
 

rog

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

donc tu traite de 0 à 9

rog
 

Discussions similaires

Haut