¿Cómo obtener una identificación de video de YouTube con PHP Regex?

El ID de YouTube es una string de 11 caracteres que consta de letras mayúsculas y minúsculas y valores numéricos. Se utiliza para definir un vídeo de YouTube de forma única. Un enlace a cualquier video de YouTube consta de su ID de YouTube en un formato de consulta cuya variable generalmente se escribe como ‘v’ o ‘vi’ o se puede representar como ‘youtu.be/’. 
Ejemplos de ID de YouTube del enlace que figura a continuación: 
 

En todas estas URL, la string ‘hjGD08xfg9c’ es la ID de YouTube. Ahora, utilizando este conocimiento, se puede crear una expresión regular para obtener la ID de YouTube de un enlace dado en PHP.
Regex: Ahora sabemos que hay cinco formatos básicos en los que podemos obtener una ID de YouTube, es decir, por v= o vi= o v/ o vi/ o youtu.be/. Entonces, como la consulta comienza desde ‘?’ o ‘yout.be/’, comience la expresión regular por ‘?’ o busque ‘yout.be/’. Ignorará la parte de la URL antes de ‘?’ o ‘usted.ser/’. Después de eso, busque ‘v=’ o ‘vi=’ y almacene los siguientes 11 caracteres e imprímalos.
De acuerdo con esta lógica, la expresión regular será 
 

preg_match_all("#(?<=v=|v\/|vi=|vi\/|youtu.be\/)[a-zA-Z0-9_-]{11}#", $url, $match);

Ejemplo: este ejemplo mostrará el ID de YouTube en el que la entrada será el enlace a YouTube. 
 

php

<?php
$url = 'https://youtu.be/hjGD08xfg9c
Producción: 

Array
(
    [0] => hjGD08xfg9c
    [1] => hjGD08xfg9c
    [2] => hjGD08xfg9c
    [3] => hjGD08xfg9c
    [4] => hjGD08xfg9c
)

 

Alternativa: en lugar de usar una expresión regular, podemos acceder a la variable o la consulta usando dos funciones que son parse_str() y parse_url() . El parse_str() toma parse_url() y una variable de salida como parámetros y coloca todos los valores de consulta de la URL en la variable de salida. El parse_url() toma la url en formato de string y un valor entero y devuelve la lista de diferentes propiedades dentro de la url dependiendo del valor del entero pasado. 
Ejemplo: 
 

php

<?php
 
// Store the URL into variable
$url = 'https://www.youtube.com/watch?v=hjGD08xfg9c';
$url1='https://www.youtube.com/?vi=hjGD08xfg9c';
 
// Use parse_str() function to parse the query string
parse_str( parse_url( $url, PHP_URL_QUERY ), $youtube_id_v );
parse_str( parse_url( $url1, PHP_URL_QUERY ), $youtube_id_vi );
 
// Display the output
echo $youtube_id_v['v'] . "\n";
echo $youtube_id_vi['vi'];
 
?>
Producción: 

hjGD08xfg9c
hjGD08xfg9c

 

Publicación traducida automáticamente

Artículo escrito por piyush25pv y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *