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

Signaler
Messages postés
392
Date d'inscription
mercredi 28 octobre 2009
Statut
Membre
Dernière intervention
23 mars 2012
-
Messages postés
30
Date d'inscription
samedi 4 août 2007
Statut
Membre
Dernière intervention
21 février 2012
-
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

Messages postés
30
Date d'inscription
samedi 4 août 2007
Statut
Membre
Dernière intervention
21 février 2012

@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 !
Messages postés
239
Date d'inscription
vendredi 20 octobre 2006
Statut
Membre
Dernière intervention
20 avril 2009

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
Messages postés
30
Date d'inscription
samedi 4 août 2007
Statut
Membre
Dernière intervention
21 février 2012

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 ;)
Messages postés
392
Date d'inscription
mercredi 28 octobre 2009
Statut
Membre
Dernière intervention
23 mars 2012
41
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];
}
##
Messages postés
392
Date d'inscription
mercredi 28 octobre 2009
Statut
Membre
Dernière intervention
23 mars 2012
41
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];
}