Ver Mensaje Individual
  #1 (permalink)  
Antiguo 27/08/2012, 13:11
minombreesmm
 
Fecha de Ingreso: agosto-2012
Ubicación: M.
Mensajes: 2.031
Antigüedad: 11 años, 8 meses
Puntos: 52
urls de youtube. que falta para que funcione 100%?

cada vez que se crea una nota el usuario puede poner url de video en el textArea

hago esto para mostrarlas como video.

Código PHP:
Ver original
  1. $textarea=str_replace("feature"," ",$textarea);//remplazo feature para que no haya problema
  2.         $urls = getUrls($textarea);//obtengo todas las urls que hay
  3.         $i=0;
  4.  
  5.         foreach($urls as $url)
  6.         {
  7.        
  8.             $rs["video"]=$url;
  9.             $rs["video"]=str_replace("watch?v=","v/",$rs["video"]);
  10.             $rs["video"]=str_replace("http://youtu.be/","http://www.youtube.com/v/",$rs["video"]);
  11.             $rs["video"]=str_replace("http://www.youtube.com/embed/","http://www.youtube.com/v/",$rs["video"]);
  12.            
  13.             if(stristr($rs["video"], 'http://www.youtube.com/v/') == TRUE or stristr($rs["video"], 'https://www.youtube.com/v/')==TRUE)       {
  14.            
  15.             $videos[$i]='<object width="150" height="150"><param name="movie" value="'.$rs["video"].'&hl=es&fs=1&rel=0"></param>
  16.             <param name="type" value="application/x-shockwave-flash">
  17.             <param name="wmode" value="opaque" />
  18.             <embed src="'.$rs["video"].'&hl=es&fs=1&rel=0" type="application/x-shockwave-flash" allowscriptaccess="always"            allowfullscreen="true" width="150" height="150"></embed>
  19.             </object>';
  20.  
  21.              $urlList[$i]=$rs["video"];
  22.              $i++;
  23.              }
  24.         }
aqui la que obtiene las urls

Código PHP:
Ver original
  1. function getUrls($string)
  2. {
  3.     $regex = '/https?\:\/\/[^\" ]+/i';
  4.     preg_match_all($regex, $string, $matches);
  5.     return ($matches[0]);
  6. }
puede leer todas las clases de urls que ven alli, que sean de youtube.
mi problema es que pasa si solo el usuario agrega esto?

http://www.youtube.com/watch?v=

osea incompleta, pero la condición se cumple y el problema es que muestro el video en una lista de todas las urls que puso el usuario siempre y cuando sean de youtube.
como podria averiguar que los 11 caracteres de la id del video de youtube que siguen, son validos?
por que no solo es ese el detalle si no tambien este
http://www.youtube.com/watch?v=12345678910

osea que ponga un valor no valido ocasionando que se cree un marco mas en la lista donde deberia ir un video valido, entonces solo muestra el marco en blanco.
talvez si en vez de mostrarlo en divs cada video podria mostrarlo tal y como ponen las urls en el texto. pero pues yo lo quiero hacer asi.
hay alguna forma?

Última edición por minombreesmm; 27/08/2012 a las 13:18