Ceci est ma première question sur ce site. Je suis nouveau sur php mais j'ai suivi les conseils et j'ai eu les mains aussi sales que possible. Malheureusement maintenant je suis un peu perplexe avec cette application Youtube simple que j'essaye de créer.Obtenir des liens vidéo depuis le canal Youtube, extraire les ID vidéo des URL et les stocker dans un tableau
Je sais qu'il y a plusieurs questions connexes, mais je n'ai pas encore trouvé une solution complète à mon problème. Quoi qu'il en soit, ce que j'essaie de faire est d'obtenir les URLs des vidéos sur un canal YouTube, d'extraire l'ID vidéo et de créer un tableau que je peux ensuite passer à une fonction javascript pour certains trucs côté client.
Voici mon code jusqu'à présent. Je suis assez sûr que mon problème concerne les tableaux vs les chaînes et les variables dans et hors des méthodes. Dans tous les cas, ma fonction array_map ne fonctionne pas et la fonction showFullFeed() renvoie seulement une valeur au lieu du tableau de liens.
Toute aide est très appréciée. Vive
class ChannelFeed {
function __construct($username) { $this->username=$username; $this->feedUrl=$url=' http://gdata.youtube.com/feeds/api/users/ '.$username.'/favorites'; $this->feed=simplexml_load_file($url); }
public function getYTid() {
$ytURL = $this->feed->entry->link['href'];
$ytvIDlen = 11; // This is the length of YouTube's video IDs
// The ID string starts after "v=", which is usually right after // "youtube.com/watch?" in the URL $idStarts = strpos($ytURL, "?v=");
// In case the "v=" is NOT right after the "?" (not likely, but I like to keep my // bases covered), it will be after an "&": if($idStarts === FALSE) $idStarts = strpos($ytURL, "&v="); // If still FALSE, URL doesn't have a vid ID if($idStarts === FALSE) die("YouTube video ID not found. Please double-check your URL.");
// Offset the start location to match the beginning of the ID string $idStarts +=3;
// Get the ID string and return it $ytvID = substr($ytURL, $idStarts, $ytvIDlen);
return $ytvID;
} public function showFullFeed() { foreach($this->feed->entry as $video){ return $vidarray[] = $video->link['href']; } } }; $youtube = new ChannelFeed('username'); $vids = $youtube->showFullFeed(); $vidIDs = array_map(getYTid(),$vids);?>