2011-09-12 3 views
-2

내가 원하는 것은 rssfeed를 읽었으므로 이미했으나 foreach 루프로 표시하므로 어떻게 5 개의 레코드 만 표시 할 수 있습니까? 지금 나는 10 개 이상의 레코드를 얻었지만 상위 5 개 레코드 만 필요합니다. 어쨌든 PHP, 자바 스크립트 또는 jquery가 5 개의 레코드 만 표시합니까? 레코드를 5 개만 표시하는 방법은 무엇입니까?

getrssFeed("http://thestar.com.my.feedsportal.com/c/33048/f/534555/index.rss");

function getrssFeed($feed_url) { 

$content = file_get_contents($feed_url);  
$x = new SimpleXmlElement($content); 
echo "<ul>"; 

foreach($x->channel->item as $entry) {  
    echo "<li><a href = '$entry->link' title='$entry->title'><h3>" . $entry->title . "</h3></a>" . $entry->pubDate . "<br /><br />" . strip_tags($entry->description) . "</li>"; 
} 
echo "</ul>"; } 
카운터 인 경우

답변

1

확인하는 if 문으로 foreach 루프에서 카운터를 넣어 시도 감사 : 여기

는 RSS 파일을 읽을 수있는 내 코드입니다 카운터가 5 -> RSS 게시물을 표시하면 카운터 ++. Else -> Exit loop.

+0

또는 for 루프를 대신 사용하십시오. – chelmertz

+0

5 회 반복 한 후 루프를 깨는 것이 더 좋을 것입니다. 그렇지 않으면 아무것도 수행하지 않는 모든 항목을 반복 할 것입니다. – oezi

+0

아, 루프를 깨는 것이 더 좋을 것입니다. 나는 그것을 편집 할 것이다 :). 고맙습니다. –

6

가장 쉬운 방법은 5 번 반복 한 후 루프를 중단하는 것입니다 :

for($i=0; $i<=min(5, count($x->channel->item)); $i++) { 
    $entry = $x->channel->item[$i]; 
    // do something 
} 

:

$i = 0; 
foreach($x->channel->item as $entry) {  
    // do something 
    $i++; 
    if($i==5){ 
    break; 
    } 
} 

다른 (더 아름다운) 방법은 for -loop 대신 foreach의를 사용하는 것 편집 :
Juhana 덕분에, 나는 이것을 고려하여 코드를 변경했습니다.

+0

대단히 감사합니다 ^^ – user723128

+1

두 번째 경우에는 5 개 미만의 항목이있을 수 있다는 점을 고려해야합니다. – JJJ

+0

귀하의 답변도 저의 하루를 저장했습니다. – DrinkJavaCodeJava

0

대신 간단한 for 루프를 사용하지 않는 이유는 무엇입니까?

for($i = 0, $i <= 5, $i++) {  
    echo "<li><a href = '$x->channel->item[$i]->link' title='$x->channel->item[$i]->title'><h3>" . $x->channel->item[$i]->title . "  </h3></a>" . $x->channel->item[$i]->pubDate . "<br /><br />" . strip_tags$x->channel->item[$i]->description) . "</li>"; 
} 
0

jQuery 피드 플러그인을 사용할 수 있습니다.

$('div.feed').Feed({ 
    count:5; 
    }); 
    <div class="feed" link="http://thestar.com.my.feedsportal.com/c/33048/f/534555/index.rss" ></div> 

피드가 컨테이너 피드에로드됩니다.

관련 문제