Jetzt kostenlos Anmelden!

Sumale.nin Männlich

postet ab und an hier

Beiträge: 213

Geschlecht: Männlich

Wohnort: Essen

PHPKIT Version: 1.6.5

1

Mittwoch, 6. Oktober 2010, 23:19

[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:

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->items0,$num_items);
//echo $rss->channel['title'];
}


Aber ich schaffe es nicht das ganze miteinander zu verknüpfen.
Hat jemand Ideen?
  • Zum Seitenanfang
  • Zum Seitenende

maXus Männlich

Grafik Künstler

Beiträge: 1 092

Geschlecht: Männlich

Wohnort: Berlin

PHPKIT Version: 1.6.03

2

Donnerstag, 7. Oktober 2010, 10:24

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:

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
  • Zum Seitenanfang
  • Zum Seitenende

Sumale.nin Männlich

postet ab und an hier

Beiträge: 213

Geschlecht: Männlich

Wohnort: Essen

PHPKIT Version: 1.6.5

3

Donnerstag, 7. Oktober 2010, 17:31

  1. Das sieht mir teilweise immer danach aus, als ob du das einfach irgendwo her kopierst, ohne zu wissen, was da eigentlich genau passiert.
  2. Laut meiner Recherche gibt es die Funktion "fetch_rss" beispielsweise gar nicht.
  3. Dein "preg_match" läuft auch irgendwie ins leere, oder wo speicherst du das Ergebnis?
  1. Das stimmt teilweise ;)
  2. Dann war deine Recherche nicht ganz richtig. Ich nutze [i]MagpieRSS[/i]
  3. Halt [i]MagpieRSS[/i]
Ich werde mir mal deinen Code ansehen, danke bis hierher!

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)

  • Zum Seitenanfang
  • Zum Seitenende

Sumale.nin Männlich

postet ab und an hier

Beiträge: 213

Geschlecht: Männlich

Wohnort: Essen

PHPKIT Version: 1.6.5

4

Samstag, 9. Oktober 2010, 14:31

Wie bekomme ich denn mein aktuellen Code mit for abgeändert? Ich möchte schon gerne weiter MagpieRSS nutzen
  • Zum Seitenanfang
  • Zum Seitenende

2Bad4You Männlich

findet sich zurecht

Beiträge: 103

Geschlecht: Männlich

Wohnort: Neustadt/Wied

PHPKIT Version: keine

5

Samstag, 9. Oktober 2010, 14:44

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>";
}
?>
  • Zum Seitenanfang
  • Zum Seitenende

Sumale.nin Männlich

postet ab und an hier

Beiträge: 213

Geschlecht: Männlich

Wohnort: Essen

PHPKIT Version: 1.6.5

6

Samstag, 9. Oktober 2010, 15:33

Das funktioniert nicht.
Ausserdem wird ja "$video" ausgelassen das soll bzw. muss auch erhalten bleiben.
Aber danke für deinen Vorschlag.

Fehlermeldung:
Fatal error: Function name must be a string in /www/htdocs/w00b2576/testumgebungen/4images/externrss/gameinsiderss.php on line 11
  • Zum Seitenanfang
  • Zum Seitenende

2Bad4You Männlich

findet sich zurecht

Beiträge: 103

Geschlecht: Männlich

Wohnort: Neustadt/Wied

PHPKIT Version: keine

7

Samstag, 9. Oktober 2010, 19:11

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>";
}
?>
  • Zum Seitenanfang
  • Zum Seitenende

Sumale.nin Männlich

postet ab und an hier

Beiträge: 213

Geschlecht: Männlich

Wohnort: Essen

PHPKIT Version: 1.6.5

8

Samstag, 9. Oktober 2010, 19:15

Es kommen keine Fehler mehr aber jetzt zeigt er garnichts mehr an.
Habe aber folgendes gefunden:

PHP-Quelltext

1
2
3
4
5
# Liefert dir die ersten fünf Elemente des Feeds
array_slice($feed->items05)

# Liefert dir die letzten fünf Elemente des Feeds
array_slice($feed->items, -5)


Ich weis nurnich genau wohin damit :D
  • Zum Seitenanfang
  • Zum Seitenende

Sumale.nin Männlich

postet ab und an hier

Beiträge: 213

Geschlecht: Männlich

Wohnort: Essen

PHPKIT Version: 1.6.5

9

Samstag, 9. Oktober 2010, 19:26

Ich habe es nun so versucht:

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->items05) 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!
  • Zum Seitenanfang
  • Zum Seitenende

2Bad4You Männlich

findet sich zurecht

Beiträge: 103

Geschlecht: Männlich

Wohnort: Neustadt/Wied

PHPKIT Version: keine

10

Samstag, 9. Oktober 2010, 20:03

Okay gut das es jetzt läuft. Nur noch der Vollständigkeitshalber die berichtigung von meinem 2ten Vorschlag:

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 :S . Aber das nur zur vollständigkeit.
  • Zum Seitenanfang
  • Zum Seitenende