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:
- https://youtu.be/hjGD08xfg9c
- https://www.youtube.com/watch?v=hjGD08xfg9c
- https://www.youtube.com/watch?vi=hjGD08xfg9c
- https://www.youtube.com/?v=hjGD08xfg9c
- https://www.youtube.com/?vi=hjGD08xfg9c
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
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']; ?>
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