Je suis actuellement en train d'écrire une application web dans laquelle certaines pages sont fortement dépendantes de la possibilité d'extraire la bonne vidéo YouTube - et de la lire. Les URL de YouTube sont fournies par les utilisateurs et pour cette raison, elles sont généralement accompagnées de variantes, l'une d'entre elles pouvant ressembler à ceci :
tandis que l'autre peut ressembler à ceci :
Actuellement, je parviens à extraire l'identifiant de ce dernier en utilisant le code ci-dessous :
function get_youtube_video_id($video_id)
{
// Did we get a URL?
if ( FALSE !== filter_var( $video_id, FILTER_VALIDATE_URL ) )
{
// http://www.youtube.com/v/abcxyz123
if ( FALSE !== strpos( $video_id, '/v/' ) )
{
list( , $video_id ) = explode( '/v/', $video_id );
}
// http://www.youtube.com/watch?v=abcxyz123
else
{
$video_query = parse_url( $video_id, PHP_URL_QUERY );
parse_str( $video_query, $video_params );
$video_id = $video_params['v'];
}
}
return $video_id;
}
Comment puis-je traiter les URL qui utilisent l'élément ?v
plutôt que la version /v/
version ?