Foros del Web » Programando para Internet » PHP »

Reemplazar enlace de youtube a iframe

Estas en el tema de Reemplazar enlace de youtube a iframe en el foro de PHP en Foros del Web. Hola, muy buenas a todos. Estoy perfeccionando el sistema de comentarios de mi red. Lo que se escribe se guarda tal cual en la base ...
  #1 (permalink)  
Antiguo 27/06/2012, 05:30
Avatar de Adrii952  
Fecha de Ingreso: diciembre-2011
Ubicación: Madrid
Mensajes: 116
Antigüedad: 12 años, 10 meses
Puntos: 7
Reemplazar enlace de youtube a iframe

Hola, muy buenas a todos.
Estoy perfeccionando el sistema de comentarios de mi red. Lo que se escribe se guarda tal cual en la base de datos, y luego se muestra con un htmlspecialchars() para evitar que el navegador interprete código malicioso o erróneo.
Ahora estoy haciendo una lista de excepciones, una función exactamente que es así:
Código PHP:
function HTMLpermitido($Cadena) {
    
$Cadena str_ireplace(htmlspecialchars("<b>"),"<b>"$Cadena);
    
$Cadena str_ireplace(htmlspecialchars("</b>"),"</b>"$Cadena);
    
$Cadena str_ireplace(htmlspecialchars("<br>"),"<br>"$Cadena);
    
$Cadena str_ireplace("\x0D\x0A","<br>"$Cadena);
    return 
$Cadena;

Entonces la cosa sería convertir un enlace de youtube http://www.youtube.com/watch?v=XXXXXXXXXXX
a un iframe
<iframe width="480" height="260" src="http://www.youtube.com/embed/XXXXXXXXXX" frameborder="0" allowfullscreen></iframe>
para que se vea el vídeo insertado.

Creo que la solución más práctica para esto es usar la función preg_replace, función que no logro entender por mucho que leo explicaciones y observo ejemplos, así que si alguien puede resolverme este enigma, aunque sea con preg_replace, le estaría muy agradecido porque llevo una buena hora dándole vueltas al problema.
  #2 (permalink)  
Antiguo 27/06/2012, 09:08
Avatar de HackGhost  
Fecha de Ingreso: marzo-2012
Ubicación: En la pesadilla de mis enemigos
Mensajes: 114
Antigüedad: 12 años, 8 meses
Puntos: 23
Respuesta: Reemplazar enlace de youtube a iframe

tambien ando buscando como resolver eso.. te aviso si encuentro algo..
  #3 (permalink)  
Antiguo 27/06/2012, 09:40
Avatar de Adrii952  
Fecha de Ingreso: diciembre-2011
Ubicación: Madrid
Mensajes: 116
Antigüedad: 12 años, 10 meses
Puntos: 7
Respuesta: Reemplazar enlace de youtube a iframe

Lo conseguí de una forma un poco mierda pero bueno, aquí va:

Código PHP:
function ConvierteLinkYoutube($Cadena) {
    
$Pos_Link_Youtube stripos($Cadena,"http://www.youtube.com/watch?v=");
    
$Enlace_Youtube substr($Cadena,$Pos_Link_Youtube+31,11);
    
$Cadena str_ireplace("http://www.youtube.com/watch?v=".$Enlace_Youtube,'<iframe width="460" height="260" src="http://www.youtube.com/embed/'.$Enlace_Youtube.'" frameborder="0" allowfullscreen></iframe>'$Cadena);    
    return 
$Cadena
Funciona con enlaces de tipo "http://www.youtube.com/watch?v=XXXXXXXXXXX"
Los &feature=blabla no se los come así que salen al lado, todavía tengo que ver como arreglo eso.
Y otra cosa que también tengo que ver es que vaya en bucle porque sólo convierte el primer enlace de la cadena y el resto se queda igual.

Etiquetas: enlace, html, iframe, reemplazar, youtube
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:42.