jeudi 4 novembre 2010
Inscrit aux spécifications du cahier de production : le formulaire devra accepter un lien YouTube. Comme je ne vois pas l'intérêt de vous écrire un roman sur le sujet, on va faire ça court. Voici donc l'expression régulière que j'ai écrite pour valider le lien saisi par l'utilisateur.
Validation
# format longExtraction de la clé
$url = 'http://www.youtube.com/watch?v=DF2G6rbzxHc&feature=player_embedded';
$regex = '/^http:\/\/(www\.)?youtube\.com\/watch\?v=([\w-]+).*$/i';
echo preg_match($regex, $url) ? 'valide' : 'invalide';
# format court
$url = 'http://youtu.be/DF2G6rbzxHc';
$regex = '/^http:\/\/youtu\.be\/([\w-]+)$/i';
echo preg_match($regex, $url) ? 'valide' : 'invalide';
Le plus pratique est d'extraire la clé unique de l'URL original pour pouvoir le faire jouer à l'extérieur de sa page YouTube en recomposant l'URL sous la forme http://www.youtube.com/v/CLÉ. Ainsi, on pourra le faire jouer facilement dans un lecteur intégré comme celui de Shadowbox.
# format long
$url = 'http://www.youtube.com/watch?v=DF2G6rbzxHc&feature=player_embedded';
$regex = '/^http:\/\/(www\.)?youtube\.com\/watch\?v=([\w-]+).*$/i';
$key = preg_replace($regex, '$2', $url);
echo 'http://www.youtube.com/v/' . $key;
# format court
$url = 'http://youtu.be/DF2G6rbzxHc';
$regex = '/^http:\/\/youtu\.be\/([\w-]+)$/i';
$key = preg_replace($regex, '$1', $url);
echo 'http://www.youtube.com/v/' . $key;
Merci , par contre maintenant pour gérer aussi le https suffit de faire
'/^http(?:s?):\/\/(www\.)?youtube\.com\/watch\?v=([\w-]+).*$/i'
Merci.
C'est exactement ce qui me fallait!