RÉCUPÉRER LES MINIATURES D'UNE VIDÉO YOUTUBE

phpAnonyme Messages postés 392 Date d'inscription mercredi 28 octobre 2009 Statut Membre Dernière intervention 23 mars 2012 - 26 mars 2011 à 16:00
tefa24600 Messages postés 30 Date d'inscription samedi 4 août 2007 Statut Membre Dernière intervention 21 février 2012 - 28 mars 2011 à 13:25
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/52994-recuperer-les-miniatures-d-une-video-youtube

tefa24600 Messages postés 30 Date d'inscription samedi 4 août 2007 Statut Membre Dernière intervention 21 février 2012
28 mars 2011 à 13:25
@LeFauve42, je n'ai pas dit qu'il fallait éviter de les utiliser, il faut, je te cite, "apprendre a les maitriser".

J'avoue que d'un autre côté, l'expression régulière utilisée ici n'est pas des plus difficile !
LeFauve42 Messages postés 239 Date d'inscription vendredi 20 octobre 2006 Statut Membre Dernière intervention 20 avril 2009
28 mars 2011 à 12:49
Bonjour,

> comme disait un grand sage "Traiter un problème avec les expressions régulière revient à s'imposer un autre problème"

Sauf ton respect TEFA24600, ton grand sage m'a l'air d'un grand charlatan....

Ce n'est pas parce qu'un source est destine aux debutants que tu dois leur donner n'importe quoi.

Les expressions regulieres sont un outil parfait pour ce genre de chose, et apprendre a les maitriser permet de resoudre tres efficacement toutes sortes de problemes.

Eric
tefa24600 Messages postés 30 Date d'inscription samedi 4 août 2007 Statut Membre Dernière intervention 21 février 2012
27 mars 2011 à 00:46
Oui, j'aurai pu utiliser les expressions régulières mais comme disait un grand sage "Traiter un problème avec les expressions régulière revient à s'imposer un autre problème"

Et puis, le code est censé être compris par des débutants et je pense que les regexp en font fuir plus d'un ;)
phpAnonyme Messages postés 392 Date d'inscription mercredi 28 octobre 2009 Statut Membre Dernière intervention 23 mars 2012 55
26 mars 2011 à 17:53
Pour une gestion COMPLETE :
##
function youtubeId($source) {

$parsed_url = parse_url($source);

if($parsed_url['host']==='www.youtube.com') {
if (isset($parsed_url['query']) && strpos($parsed_url['query'], "v=") !== FALSE)
preg_match('{v=([a-z_0-9]+)}i', strval($parsed_url['query']), $youtubeId);
else
preg_match('{v/([a-z_0-9]+)}i', strval($parsed_url['path']), $youtubeId);
}
elseif($parsed_url['host']==='youtu.be')
preg_match('{/([a-z_0-9]+)}i', strval($parsed_url['path']), $youtubeId);
else
die('Unknow host');

return $youtubeId[1];
}
##
phpAnonyme Messages postés 392 Date d'inscription mercredi 28 octobre 2009 Statut Membre Dernière intervention 23 mars 2012 55
26 mars 2011 à 16:00
1 - strpos($query, "v=") $query n'est pas définie
// C'est plutôt : strpos($parsed_url['query'], "v=")

2 - Il faut protéger tes tableaux !!
# $parsed_url[path] et d'autres...
// $parsed_url['path']

3- On peut faire plus simple et plus rapide :
//
function youtubeId($source) {

$parsed_url = parse_url($source);

if (strpos($parsed_url['query'], "v=") === false)
preg_match('{/(.*)$}', trim(strval($parsed_url['path']), '/'), $youtubeId);
else
preg_match('{\=(.*)\&(.*)$}', strval($parsed_url['query']), $youtubeId);

return $youtubeId[1];
}