YouTube Feed
1. Bij de feed word als link bijvoorbeeld http://www.youtube.com/watch?v=ZVApqiValgc&feature=youtube_gdata weergeven maar ik heb alleen ZVApqiValgc (de video id) nodig.
2. Bij mijn code worden alle artikelen van de feed weergeven terwijl ik er maar een nodig heb.
Dit is de code die ik tot nu toe heb:
Code (php)
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
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
$articles = array();
$blog_url = "http://gdata.youtube.com/feeds/base/users/remcob00/uploads?alt=rss&v=2&orderby=published&client=ytapi-youtube-profile";
$rawFeed = file_get_contents($blog_url);
$xml = new SimpleXmlElement($rawFeed);
$channel = array();
$channel["title"] = $xml->channel->title;
$channel["link"] = $xml->channel->link;
$channel["description"] = $xml->channel->description;
$channel["pubDate"] = $xml->pubDate;
$channel["timestamp"] = strtotime($xml->pubDate);
$channel["generator"] = $xml->generator;
$channel["language"] = $xml->language;
foreach ($xml->channel->item as $item)
{
$article = array();
$article["channel"] = $blog_url;
?>
$articles = array();
$blog_url = "http://gdata.youtube.com/feeds/base/users/remcob00/uploads?alt=rss&v=2&orderby=published&client=ytapi-youtube-profile";
$rawFeed = file_get_contents($blog_url);
$xml = new SimpleXmlElement($rawFeed);
$channel = array();
$channel["title"] = $xml->channel->title;
$channel["link"] = $xml->channel->link;
$channel["description"] = $xml->channel->description;
$channel["pubDate"] = $xml->pubDate;
$channel["timestamp"] = strtotime($xml->pubDate);
$channel["generator"] = $xml->generator;
$channel["language"] = $xml->language;
foreach ($xml->channel->item as $item)
{
$article = array();
$article["channel"] = $blog_url;
?>
<ul>
<li><h2> </h2>
<iframe width="425" height="349" src="http://www.youtube.com/embed/" frameborder="0" allowfullscreen></iframe>
</li>
</ul>
Gewijzigd op 05/06/2011 18:03:00 door Remco B
Die url kun je parsen met parse url oid en dan de parameters eruit halen :)
Kees Schepers op 05/06/2011 18:08:53:
Die url kun je parsen met parse url oid en dan de parameters eruit halen :)
Ik heb nog niet zo heel veel ervaring met PHP dus ik snap niet helemaal hoe dat parsen werkt.
Ik had dit bericht misschien beter in de categorie Beginnen met PHP kunnen zetten. Kunnen jullie niet ff een voorbeeld geven of een Nederlandse website want ik snap er niet echt veel van.
Arjan - op 11/06/2011 15:45:19:
Ik heb dat gedaan maar hij doet het nog steeds niet, dit is m'n code:
Code (php)
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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
<?php
$articles = array();
$blog_url = "http://gdata.youtube.com/feeds/base/users/remcob00/uploads?alt=rss&v=2&orderby=published&client=ytapi-youtube-profile";
$rawFeed = file_get_contents($blog_url);
$xml = new SimpleXmlElement($rawFeed);
$channel = array();
$channel["title"] = $xml->channel->title;
$channel["link"] = $xml->channel->link;
$channel["description"] = $xml->channel->description;
$channel["pubDate"] = $xml->pubDate;
$channel["timestamp"] = strtotime($xml->pubDate);
$channel["generator"] = $xml->generator;
$channel["language"] = $xml->language;
foreach ($xml->channel->item as $item)
{
$article = array();
$article["channel"] = $blog_url;
?>
<ul>
<li><h2> <?php echo $article["title"] = $item->title;?></h2>
<iframe width="425" height="349" src="http://www.youtube.com/embed/<?php
function getVideoID($string = '') {
$parsed_url = parse_url($string, PHP_URL_QUERY);
if($parsed_url) {
parse_str($parsed_url, $parsed_str);
return $parsed_str['v'];
}
return false;
}
echo getVideoID('<?php echo $article["link"] = $item->link;?>');
?>" frameborder="0" allowfullscreen></iframe>
<?php echo $article["description"] = (string) trim($item->description);?>
</li>
</ul>
<?php
}
?>
$articles = array();
$blog_url = "http://gdata.youtube.com/feeds/base/users/remcob00/uploads?alt=rss&v=2&orderby=published&client=ytapi-youtube-profile";
$rawFeed = file_get_contents($blog_url);
$xml = new SimpleXmlElement($rawFeed);
$channel = array();
$channel["title"] = $xml->channel->title;
$channel["link"] = $xml->channel->link;
$channel["description"] = $xml->channel->description;
$channel["pubDate"] = $xml->pubDate;
$channel["timestamp"] = strtotime($xml->pubDate);
$channel["generator"] = $xml->generator;
$channel["language"] = $xml->language;
foreach ($xml->channel->item as $item)
{
$article = array();
$article["channel"] = $blog_url;
?>
<ul>
<li><h2> <?php echo $article["title"] = $item->title;?></h2>
<iframe width="425" height="349" src="http://www.youtube.com/embed/<?php
function getVideoID($string = '') {
$parsed_url = parse_url($string, PHP_URL_QUERY);
if($parsed_url) {
parse_str($parsed_url, $parsed_str);
return $parsed_str['v'];
}
return false;
}
echo getVideoID('<?php echo $article["link"] = $item->link;?>');
?>" frameborder="0" allowfullscreen></iframe>
<?php echo $article["description"] = (string) trim($item->description);?>
</li>
</ul>
<?php
}
?>
Gewijzigd op 11/06/2011 15:54:41 door Remco B
Haal de functie buiten je foreach loop! Een functie is juist bedoeld om meerdere keren aangesproken te kunnen worden, dus in een loop zetten is not done!
En in je foreach loop zal je dan dit moeten gebruiken:
En waar komt $article['link'] trouwens vandaan? Want je reset de variabele $article in je foreachloop ($article = array()); En vervolgens zie ik nergens waar je $article['link'] definieert.
Volgens mij klopt er maar weinig van je script? Of doet de rest het wel naar behoren? (moet $article['link'] geen $channel['link'] zijn?)
Gewijzigd op 11/06/2011 16:04:26 door Arjan -
Arjan - op 11/06/2011 15:56:07:
Poehee, daar klopt natuurlijk geen hout van.
Haal de functie buiten je foreach loop! Een functie is juist bedoeld om meerdere keren aangesproken te kunnen worden, dus in een loop zetten is not done!
En in je foreach loop zal je dan dit moeten gebruiken:
En waar komt $article['link'] trouwens vandaan? Want je reset de variabele $article in je foreachloop ($article = array()); En vervolgens zie ik nergens waar je $article['link'] definieert.
Volgens mij klopt er maar weinig van je script? Of doet de rest het wel naar behoren? (moet $article['link'] geen $channel['link'] zijn?)
Haal de functie buiten je foreach loop! Een functie is juist bedoeld om meerdere keren aangesproken te kunnen worden, dus in een loop zetten is not done!
En in je foreach loop zal je dan dit moeten gebruiken:
En waar komt $article['link'] trouwens vandaan? Want je reset de variabele $article in je foreachloop ($article = array()); En vervolgens zie ik nergens waar je $article['link'] definieert.
Volgens mij klopt er maar weinig van je script? Of doet de rest het wel naar behoren? (moet $article['link'] geen $channel['link'] zijn?)
Ik heb hem nu buiten de loop gezet. Nu ziet m'n code er zo uit maar hij geeft steeds nog geen gehoor.
Code (php)
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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
<?php
$articles = array();
$blog_url = "http://gdata.youtube.com/feeds/base/users/remcob00/uploads?alt=rss&v=2&orderby=published&client=ytapi-youtube-profile";
$rawFeed = file_get_contents($blog_url);
$xml = new SimpleXmlElement($rawFeed);
$channel = array();
$channel["title"] = $xml->channel->title;
$channel["link"] = $xml->channel->link;
$channel["description"] = $xml->channel->description;
$channel["pubDate"] = $xml->pubDate;
$channel["timestamp"] = strtotime($xml->pubDate);
$channel["generator"] = $xml->generator;
$channel["language"] = $xml->language;
function getVideoID($string = '') {
$parsed_url = parse_url($string, PHP_URL_QUERY);
if($parsed_url) {
parse_str($parsed_url, $parsed_str);
return $parsed_str['v'];
}
return false;
}
echo getVideoID('http://...');
foreach ($xml->channel->item as $item)
{
$article = array();
$article["channel"] = $blog_url;
?>
<ul>
<li><h2> <?php echo $article["title"] = $item->title;?></h2>
<iframe width="425" height="349" src="http://www.youtube.com/embed/<?php
echo getVideoID($article['link']);
?>" frameborder="0" allowfullscreen></iframe>
<?php echo $article["description"] = (string) trim($item->description);?>
</li>
</ul>
<?php
}
?>
$articles = array();
$blog_url = "http://gdata.youtube.com/feeds/base/users/remcob00/uploads?alt=rss&v=2&orderby=published&client=ytapi-youtube-profile";
$rawFeed = file_get_contents($blog_url);
$xml = new SimpleXmlElement($rawFeed);
$channel = array();
$channel["title"] = $xml->channel->title;
$channel["link"] = $xml->channel->link;
$channel["description"] = $xml->channel->description;
$channel["pubDate"] = $xml->pubDate;
$channel["timestamp"] = strtotime($xml->pubDate);
$channel["generator"] = $xml->generator;
$channel["language"] = $xml->language;
function getVideoID($string = '') {
$parsed_url = parse_url($string, PHP_URL_QUERY);
if($parsed_url) {
parse_str($parsed_url, $parsed_str);
return $parsed_str['v'];
}
return false;
}
echo getVideoID('http://...');
foreach ($xml->channel->item as $item)
{
$article = array();
$article["channel"] = $blog_url;
?>
<ul>
<li><h2> <?php echo $article["title"] = $item->title;?></h2>
<iframe width="425" height="349" src="http://www.youtube.com/embed/<?php
echo getVideoID($article['link']);
?>" frameborder="0" allowfullscreen></iframe>
<?php echo $article["description"] = (string) trim($item->description);?>
</li>
</ul>
<?php
}
?>
Volgens mij licht de fout bij deze regel:
Toevoeging op 11/06/2011 16:20:14:
Arjan - op 11/06/2011 15:56:07:
Poehee, daar klopt natuurlijk geen hout van.
Haal de functie buiten je foreach loop! Een functie is juist bedoeld om meerdere keren aangesproken te kunnen worden, dus in een loop zetten is not done!
En in je foreach loop zal je dan dit moeten gebruiken:
En waar komt $article['link'] trouwens vandaan? Want je reset de variabele $article in je foreachloop ($article = array()); En vervolgens zie ik nergens waar je $article['link'] definieert.
Volgens mij klopt er maar weinig van je script? Of doet de rest het wel naar behoren? (moet $article['link'] geen $channel['link'] zijn?)
Haal de functie buiten je foreach loop! Een functie is juist bedoeld om meerdere keren aangesproken te kunnen worden, dus in een loop zetten is not done!
En in je foreach loop zal je dan dit moeten gebruiken:
En waar komt $article['link'] trouwens vandaan? Want je reset de variabele $article in je foreachloop ($article = array()); En vervolgens zie ik nergens waar je $article['link'] definieert.
Volgens mij klopt er maar weinig van je script? Of doet de rest het wel naar behoren? (moet $article['link'] geen $channel['link'] zijn?)
Het script doet het voor de rest wel. Ik heb het trouwens niet helemaal zelf ontwikkeld.
En print de waarde van $article['link'] eens en kijk of je een waarde te zien krijgt, want volgens mij is deze variabele leeg. Dus dan zal het sowieso niet werken.
Ik merk al wel dat je erg weinig verstand hebt van php en het één en ander lukraak probeert. Je zal eens variabelen kunnen echoën om te kijken of de verwachte waarde in de variabele aanwezig is!!
Arjan - op 11/06/2011 16:48:15:
echo getVideoID('http://...'); was natuurlijk maar een voorbeeld en kan in jouw script weggehaald worden.
En print de waarde van $article['link'] eens en kijk of je een waarde te zien krijgt, want volgens mij is deze variabele leeg. Dus dan zal het sowieso niet werken.
Ik merk al wel dat je erg weinig verstand hebt van php en het één en ander lukraak probeert. Je zal eens variabelen kunnen echoën om te kijken of de verwachte waarde in de variabele aanwezig is!!
En print de waarde van $article['link'] eens en kijk of je een waarde te zien krijgt, want volgens mij is deze variabele leeg. Dus dan zal het sowieso niet werken.
Ik merk al wel dat je erg weinig verstand hebt van php en het één en ander lukraak probeert. Je zal eens variabelen kunnen echoën om te kijken of de verwachte waarde in de variabele aanwezig is!!
Ja, de waarde is goed hij geeft bijvoorbeeld bij een video weer: http://www.youtube.com/watch?v=XyENZ0MhXSA&feature=youtube_gdata alleen hij doet niet (vreemd).