Ver Mensaje Individual
  #3 (permalink)  
Antiguo 03/10/2012, 20:36
Avatar de truman_truman
truman_truman
 
Fecha de Ingreso: febrero-2010
Ubicación: /home/user
Mensajes: 1.341
Antigüedad: 14 años, 10 meses
Puntos: 177
Respuesta: [APORTE] Obtener ID de video de Youtube y validar url

Cita:
Iniciado por Triby Ver Mensaje
Yo normalmente lo hago con una expresión regular que encontré en otro foro:
Me ha funcionado correctamente, será cuestión de que lo pruebes para ver si hay errores.
Hola Triby, corrijo un pequeño error en tu function, cambio $value por $url, luego de eso funciona bien, el único problema es que hay una que la devuelve mal ( ClgJpUn4awk?hd=1 ) no le quita el ?hd=1



Código PHP:
function youtubeId($url) {
    if(
$url != '') {
        
$match preg_match("#(?<=v=)[a-zA-Z0-9-]+(?=&)|(?<=v\/)[^&\n]+(?=\?)|(?<=v=)[^&\n]+|(?<=youtu.be/)[^&\n]+#"$url$matches);
        if((int) 
$match 0) {
                return 
$matches[0];
        }
    }
    return 
false;
}


$cadena = array();
$cadena[] = "http://www.youtube.com/watch?v=ClgJpUn4awk&feature=related";
$cadena[] = "http://www.youtube.com/watch?v=ClgJpUn4awk&hd=1";
$cadena[] = "http://youtu.be/ClgJpUn4awk";
$cadena[] = "http://youtu.be/ClgJpUn4awk?hd=1";
$cadena[] = "http://www.youtube.com/watch?feature=player_embedded&v=gYem0OuaV8o";
// ESTA URL NO EXISTE, POR LO TANTO DEVUELVE FALSE
$cadena[] = "http://www.youtube.com/watch?v=ClgJpUdfhfdhfgn4awk&feature=related";


foreach(
$cadena as $v){
    
    echo 
$v;
    echo 
'<br/>';
    echo 
'---->'.youtubeId($v);
    echo 
'<br/>';
    echo 
'<br/>';

__________________
la la la