[PHP] Rss Feed von youtube Videos
Hallo zusammen,
ich habe mir ein RSS-Feed zusammengestellt um Videos von Youtube auf meiner Webseite anzeigen zu lassen. Das ganze funktioniert auch perfekt, allerdings weis ich nicht wie ich die Anzahl begrenzen kann.
Hier mal der Code:
Ich habe da zwar etwas zu gefunden:
Aber ich schaffe es nicht das ganze miteinander zu verknüpfen.
Hat jemand Ideen?
ich habe mir ein RSS-Feed zusammengestellt um Videos von Youtube auf meiner Webseite anzeigen zu lassen. Das ganze funktioniert auch perfekt, allerdings weis ich nicht wie ich die Anzahl begrenzen kann.
Hier mal der Code:
|
|
PHP-Quelltext |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
<?php
include('rss_fetch.inc');
$feed = fetch_rss("http://gdata.youtube.com/feeds/api/users/gameinsideshow/uploads?alt=rss");
if(count($feed->items)>0){
foreach ($feed->items as $video){
//Get the video ID
preg_match("/http:\/\/gdata.youtube.com\/feeds\/api\/videos\/(([a-zA-Z0-9]|-|_)*)/", $video['guid'], $videoIdMatches);
$videoID = $videoIdMatches[1];
?>
<li>
<span class="photo">
<span class="fp-img2">
<img src="http://img.youtube.com/vi/<?= $videoID ?>/0.jpg" alt="<?= $video["title"] ?>" width="120" height="90" />
</span>
</span>
<h4>$title</h4>
<span class="desc"><?= $video->description ?></span>
<a href="<?= $video['link'] ?>">Read More...</a>
</li>
<?php
}
}else{
echo "<h3>No Videos Found</h3>";
}
?>
|
Ich habe da zwar etwas zu gefunden:
|
|
PHP-Quelltext |
1 2 3 4 5 6 |
if ( $url ) {
$num_items = 5;
$rss = fetch_rss( $url );
$items = array_slice($rss->items, 0,$num_items);
//echo $rss->channel['title'];
}
|
Aber ich schaffe es nicht das ganze miteinander zu verknüpfen.
Hat jemand Ideen?
Bohr wenn ich deinen Code schon wieder sehe wird mir echt anders 
Wie wäre es, wenn du dich mal mit den Grundsachen auseinander setzt, wenn du nun doch öfters so was kleines machst? Damit meien ich CodeDesign, Grundfunktionen etc.
Das sieht mir teilweise immer danach aus, als ob du das einfach irgendwo her kopierst, ohne zu wissen, was da eigentlich genau passiert. Laut meiner Recherche gibt es die Funktion "fetch_rss" beispielsweise gar nicht. Hab ich auch noch nie gehört. Scheint eine interne Wordpress Funktion zu sein. Dein "preg_match" läuft auch irgendwie ins leere, oder wo speicherst du das Ergebnis?
Ansonsten nimm einfach statt eine "foreach" Schleife eine "for" Schleife und shcon kannst du bestimmen, wie viele ausgegeben werden sollen.
//EDIT: Ok jetzt wo ich deinen Code kopieren möchte, sehe ich deinen include, in dem wohl die Funktion drin ist. Dennoch unnötig
So würde ich es machen:
Wahrscheinlich Arbeitet deine Funktion ähnlich, doch das ist nur eine Vermutung von mir, da ich ja nicht rein gucken kann
Hier mal ein Test mit einem anderen Stream und dem oben stehenden Codezeilen: http://maxus.space4free.net/test/youtube_feed.php

Wie wäre es, wenn du dich mal mit den Grundsachen auseinander setzt, wenn du nun doch öfters so was kleines machst? Damit meien ich CodeDesign, Grundfunktionen etc.
Das sieht mir teilweise immer danach aus, als ob du das einfach irgendwo her kopierst, ohne zu wissen, was da eigentlich genau passiert. Laut meiner Recherche gibt es die Funktion "fetch_rss" beispielsweise gar nicht. Hab ich auch noch nie gehört. Scheint eine interne Wordpress Funktion zu sein. Dein "preg_match" läuft auch irgendwie ins leere, oder wo speicherst du das Ergebnis?
Ansonsten nimm einfach statt eine "foreach" Schleife eine "for" Schleife und shcon kannst du bestimmen, wie viele ausgegeben werden sollen.
//EDIT: Ok jetzt wo ich deinen Code kopieren möchte, sehe ich deinen include, in dem wohl die Funktion drin ist. Dennoch unnötig

So würde ich es machen:
|
|
PHP-Quelltext |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
<?php
$feed = "http://gdata.youtube.com/feeds/base/users/wettendass/uploads?alt=rss&v=2&orderby=published&client=ytapi-youtube-profile";
$feed_xml = simplexml_load_file($feed;
$limit = 5;
if(!empty($feed_xml))
{
for($count = 0; $count < $limit; $count++)
{
/**
* Deine Ausgabe kommt dann hier rein.
* $feed_xml wird als object behandelt,
* also werden die Array Elemente so angesprochen:
* $feed_xml->KEYNAME->KEYNAME ...
* Beispiel: $feed_xml->channel->item[$count]
*
* Ausgaben müssen eventuell noch mit der Funktion utf8_decode() behandelt werden
*/
}
}
?>
|
Wahrscheinlich Arbeitet deine Funktion ähnlich, doch das ist nur eine Vermutung von mir, da ich ja nicht rein gucken kann

Hier mal ein Test mit einem anderen Stream und dem oben stehenden Codezeilen: http://maxus.space4free.net/test/youtube_feed.php
- Das sieht mir teilweise immer danach aus, als ob du das einfach irgendwo her kopierst, ohne zu wissen, was da eigentlich genau passiert.
- Laut meiner Recherche gibt es die Funktion "fetch_rss" beispielsweise gar nicht.
- Dein "preg_match" läuft auch irgendwie ins leere, oder wo speicherst du das Ergebnis?
- Das stimmt teilweise ;)
- Dann war deine Recherche nicht ganz richtig. Ich nutze [i]MagpieRSS[/i]
- Halt [i]MagpieRSS[/i]
Edit
Wie bekomme ich denn mein aktuellen Code mit for abgeändert? Ich möchte schon gerne weiter [i][i][i]MagpieRSS[/i] nutzen.[/i][/i]
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Sumale.nin« (8. Oktober 2010, 20:32)
Ungetestet. Aber vielleicht so? Könnte aber auch falsch sein. Also backup machen und einfach mal austesten

|
|
PHP-Quelltext |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
<?php
include('rss_fetch.inc');
$limit = 5;
$feed = fetch_rss("http://gdata.youtube.com/feeds/api/users/gameinsideshow/uploads?alt=rss");
if(count($feed->items)>0)
{
for($i=0; $i < $limit; $i++)
{
//Get the video ID
$preg_match("/http:\/\/gdata.youtube.com\/feeds\/api\/videos\/(([a-zA-Z0-9]|-|_)*)/",
$video['guid'], $videoIdMatches);
$videoID = $videoIdMatches[1];
?>
<li>
<span class="photo">
<span class="fp-img2">
<img src="http://img.youtube.com/vi/<?= $videoID ?>/0.jpg" alt="<?= $feed->items["title"] ?>"
width="120" height="90" />
</span>
</span>
<h4>$title</h4>
<span class="desc"><?= $feed->items->description ?></span>
<a href="<?= $feed->items['link'] ?>">Read More...</a>
</li>
<?php
}
}else{
echo "<h3>No Videos Found</h3>";
}
?>
|
Ok andere Möglichkeit ...
|
|
PHP-Quelltext |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
<?php
include('rss_fetch.inc');
$feed = fetch_rss("http://gdata.youtube.com/feeds/api/users/gameinsideshow/uploads?alt=rss");
$limit = 5;
if(count($feed->items)>0)
{
$i = 0;
foreach ($feed->items as $video)
{
if($i < $limit)
{
break;
}
//Get the video ID
preg_match("/http:\/\/gdata.youtube.com\/feeds\/api\/videos\/(([a-zA-Z0-9]|-|_)*)/", $video['guid'], $videoIdMatches);
$videoID = $videoIdMatches[1];
?>
<li>
<span class="photo">
<span class="fp-img2">
<img src="http://img.youtube.com/vi/<?= $videoID ?>/0.jpg" alt="<?= $video["title"] ?>" width="120" height="90" />
</span>
</span>
<h4>$title</h4>
<span class="desc"><?= $video->description ?></span>
<a href="<?= $video['link'] ?>">Read More...</a>
</li>
<?php
$i++;
}
}else{
echo "<h3>No Videos Found</h3>";
}
?>
|
Es kommen keine Fehler mehr aber jetzt zeigt er garnichts mehr an.
Habe aber folgendes gefunden:
Ich weis nurnich genau wohin damit :D
Habe aber folgendes gefunden:
|
|
PHP-Quelltext |
1 2 3 4 5 |
# Liefert dir die ersten fünf Elemente des Feeds
array_slice($feed->items, 0, 5)
# Liefert dir die letzten fünf Elemente des Feeds
array_slice($feed->items, -5)
|
Ich weis nurnich genau wohin damit :D
Ich habe es nun so versucht:
Und es läuft!
Danke trotzdem!
|
|
PHP-Quelltext |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
<?php
include('rss_fetch.inc');
$feed = fetch_rss("http://gdata.youtube.com/feeds/api/users/gameinsideshow/uploads?alt=rss");
if(count($feed->items)>0){
foreach (array_slice($feed->items, 0, 5) as $video) {
//Get the video ID
preg_match("/http:\/\/gdata.youtube.com\/feeds\/api\/videos\/(([a-zA-Z0-9]|-|_)*)/", $video['guid'], $videoIdMatches);
$videoID = $videoIdMatches[1];
?>
<li>
<span class="photo">
<span class="fp-img2">
<img src="http://img.youtube.com/vi/<?= $videoID ?>/0.jpg" alt="<?= $video["title"] ?>" width="126" height="66" />
</span>
</span>
<h4>$title</h4>
<span class="desc"><?= $video->description ?></span>
<a href="<?= $video['link'] ?>">Read More...</a>
</li>
<?php
}
}else{
echo "<h3>No Videos Found</h3>";
}
?>
|
Und es läuft!
Danke trotzdem!
Okay gut das es jetzt läuft. Nur noch der Vollständigkeitshalber die berichtigung von meinem 2ten Vorschlag:
Mal wieder größer und kleiner als Zeichen vertauscht
. Aber das nur zur vollständigkeit.
|
|
PHP-Quelltext |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
<?php
include('rss_fetch.inc');
$feed = fetch_rss("http://gdata.youtube.com/feeds/api/users/gameinsideshow/uploads?alt=rss");
$limit = 5;
if(count($feed->items)>0)
{
$i = 0;
foreach ($feed->items as $video)
{
if($i > $limit)
{
break;
}
//Get the video ID
preg_match("/http:\/\/gdata.youtube.com\/feeds\/api\/videos\/(([a-zA-Z0-9]|-|_)*)/", $video['guid'], $videoIdMatches);
$videoID = $videoIdMatches[1];
?>
<li>
<span class="photo">
<span class="fp-img2">
<img src="http://img.youtube.com/vi/<?= $videoID ?>/0.jpg" alt="<?= $video["title"] ?>" width="120" height="90" />
</span>
</span>
<h4>$title</h4>
<span class="desc"><?= $video->description ?></span>
<a href="<?= $video['link'] ?>">Read More...</a>
</li>
<?php
$i++;
}
}else{
echo "<h3>No Videos Found</h3>";
}
?>
|
Mal wieder größer und kleiner als Zeichen vertauscht
. Aber das nur zur vollständigkeit. Ähnliche Themen
-
User Content | Addons »-
Alle Versionen Video Navbox
(12. Januar 2008, 14:02)
-
alte Versionen [1.6.03|1.6.1|1.6.4] »-
Problem BBCODE Flash inkl. Grössenangabe
(23. Februar 2009, 19:11)
-
alte Versionen [1.6.03|1.6.1|1.6.4] »-
BB-Code von LCL umbauen
(6. September 2008, 12:07)
-
alte Versionen [1.6.03|1.6.1|1.6.4] »-
YouTube im Forum abspielen
(25. Juli 2008, 17:49)


