Ver Mensaje Individual
  #5 (permalink)  
Antiguo 07/01/2008, 04:46
Avatar de jpinedo
jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 21 años, 4 meses
Puntos: 41
Re: como cortar una URL

Es raro... yo copié tu código tal cual y me funciona bien con todas las opciones que propones. Excepto con la de substr() que debería tener como parámetro $url[8] y no $url.

Te aconsejaría que utilices nombres diferentes de variables. Sobretodo si $url primero es una cadena que entra como parámetro, luego otra cadena distinta, luego un array (get_headers) y luego una simple cadena otra vez. Esto no tiene nada que ver, pero es por una cuestión de orden.

Además, de todas las opciones, creo que la mejor es directamente cortar la cadena con substr, que no hace comparaciones de ningún tipo.

Haz un archivo prueba.php que solamente contenga esto:
Código PHP:
<?php
error_reporting
(E_ALL);

function 
getYouTubeFlv($url){
    
    if( 
$html file_get_contents($url) ){
        if( 
preg_match_all("/\b(?:video_id)\b:.*/"$html$matches) ){
            
$ref $matches[0][0];
            
preg_match_all("/\'[^\'\\\\\r\n]*(?:\\\\.[^\'\\\\\r\n]*)*\'/"$ref$match);
            
$id1 str_replace("'"""$match[0][0]);
            
$id2 str_replace("'"""$match[0][2]);
            
$id3 str_replace("'"""$match[0][3]);
            
$id $id1.'&t='.$id2.'&sk='.$id3;
            
            
$url_video 'http://youtube.com/get_video.php?video_id='.$id;
            
$url_headers get_headers($url_video);

            
$url_flv substr$url_headers[8],10 );
            return 
$url_flv;
        }
    return 
false;
    }
}  

// Probando la función
if( $flv getYouTubeFlv("http://es.youtube.com/watch?v=cGa4vGJ2O7w") ){
    echo 
$flv;    
}
?>
Solamente le cambié el nombre a algunas variables para que se entiendan mejor y dejé el substr(). Con el error_reporting() nos aseguramos de que te aparezcan los mensajes de error.

Simplemente recuerda que get_headers() está disponible desde PHP5.

Saludos

Última edición por jpinedo; 07/01/2008 a las 05:04