phpAnonyme
Messages postés392Date d'inscriptionmercredi 28 octobre 2009StatutMembreDernière intervention23 mars 2012
-
26 mars 2011 à 16:00
tefa24600
Messages postés30Date d'inscriptionsamedi 4 août 2007StatutMembreDernière intervention21 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.
tefa24600
Messages postés30Date d'inscriptionsamedi 4 août 2007StatutMembreDernière intervention21 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és239Date d'inscriptionvendredi 20 octobre 2006StatutMembreDernière intervention20 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és30Date d'inscriptionsamedi 4 août 2007StatutMembreDernière intervention21 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és392Date d'inscriptionmercredi 28 octobre 2009StatutMembreDernière intervention23 mars 201255 26 mars 2011 à 17:53
Pour une gestion COMPLETE :
##
function youtubeId($source) {
28 mars 2011 à 13:25
J'avoue que d'un autre côté, l'expression régulière utilisée ici n'est pas des plus difficile !
28 mars 2011 à 12:49
> 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
27 mars 2011 à 00:46
Et puis, le code est censé être compris par des débutants et je pense que les regexp en font fuir plus d'un ;)
26 mars 2011 à 17:53
##
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];
}
##
26 mars 2011 à 16:00
// 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];
}