Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] BBCode de Youtube

Estas en el tema de BBCode de Youtube en el foro de PHP en Foros del Web. Lo que quiero hacer es esto, a ver si lo entienden: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código PHP: Ver original <?php $texto = "[youtube]http://www.youtube.com/watch?v=rRoy6I4gKWU[/youtube]" ; $search = array ...
  #1 (permalink)  
Antiguo 03/11/2013, 15:31
Avatar de iEnrique  
Fecha de Ingreso: abril-2013
Ubicación: España
Mensajes: 346
Antigüedad: 11 años
Puntos: 5
BBCode de Youtube

Lo que quiero hacer es esto, a ver si lo entienden:

Código PHP:
Ver original
  1. <?php
  2. $texto = "[youtube]http://www.youtube.com/watch?v=rRoy6I4gKWU[/youtube]";
  3. $search = array(
  4.       "/\[youtube\]http://www.youtube.com/watch?v=(.*?)\[\/youtube\]/is",
  5.  );
  6. $replace = array(
  7.       "<iframe width=\"420\" height=\"315\" src=\"//www.youtube.com/embed/$1\" frameborder=\"0\" allowfullscreen></iframe>"
  8.  );
  9.  $video = preg_replace($search, $replace, $texto);
  10.  echo $video;
  11.  ?>

Ese código no me funciona, pero, ¿cómo haría para que me funcionara? Lo que me gustaría es que el código en vez de coger solo "[youtube]", que coja "[youtube]http://www.youtube.com/watch?v=" y que reciba la id del vídeo únicamente.

Un saludo, gracias.
  #2 (permalink)  
Antiguo 04/11/2013, 08:15
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: BBCode de Youtube

¿Sabes expresiones regulares?

Porque eso lo debes resolver cambiando tu expresión, es decir, si tienes esto:
Cita:
\[yt\]foo=(.+?)\[\/yt\]
puede quedar así:
Cita:
\[yt\](.+?)\[\/yt\]
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 04/11/2013, 16:12
Avatar de iEnrique  
Fecha de Ingreso: abril-2013
Ubicación: España
Mensajes: 346
Antigüedad: 11 años
Puntos: 5
Respuesta: BBCode de Youtube

Cita:
Iniciado por pateketrueke Ver Mensaje
¿Sabes expresiones regulares?

Porque eso lo debes resolver cambiando tu expresión, es decir, si tienes esto:


puede quedar así:
Si, muchas gracias por contestar pero no es a eso a lo que me refiero. Lo que necesito es únicamente la id, osea los últimos 11 caracteres, el $_GET['v'] para ponerlo en el iframe y que se muestre el vídeo de YouTube.

Se puede ver bien en el código que deje que lo que quiero es que coja la etiqueta [youtube]link del video; y desde el link del video coger la id.

Si no lo entiendes de esta vez te lo explico más detalladamente...

Gracias
  #4 (permalink)  
Antiguo 04/11/2013, 16:23
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: BBCode de Youtube

Por eso te he preguntado si sabías expresiones regulares, ahora veo que no.

Esta expresión está completamente mal, pues tiene errores de sintaxis y lógicos:

Cita:
/\[youtube\]http://www.youtube.com/watch?v=(.*?)\[\/youtube\]/is
¿Tu colocaste la URL así no más porque se te ha ocurrido?

Mal ahí, te sugiero revisar una referencia de RegExp para que entiendas lo que haces mal.

En resumen:

- Mal uso de delimitadores (/)
- Mal uso del carácter opcional (?)
- Mal uso del meta-carácter dot-all (.)
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 05/11/2013, 06:51
Avatar de iEnrique  
Fecha de Ingreso: abril-2013
Ubicación: España
Mensajes: 346
Antigüedad: 11 años
Puntos: 5
Respuesta: BBCode de Youtube

Cita:
Iniciado por pateketrueke Ver Mensaje
¿Sabes expresiones regulares?

Porque eso lo debes resolver cambiando tu expresión, es decir, si tienes esto:


puede quedar así:
No, no sé porque no me entero mucho. ¿Me podrías sugerir como hacerlo? Busqué información sobre las expresiones regulares y tan solo me enteré de lo que te escribí... ¿Cómo se escribirían correctamente evitando los errores que me has mencionado?

Muchas gracias Pateke
  #6 (permalink)  
Antiguo 05/11/2013, 10:06
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: BBCode de Youtube

La expresión correcta sería así:
Cita:
/\[youtube\]http:\/\/www\.youtube\.com\/watch\?v=(.*?)\[\/youtube\]/is
Pero de verdad te sugiero estudiar RegExp también porque son una herramienta básica, y desde luego es un lenguaje completamente a parte, no está bien que alguien más siempre te resuelva los problemas.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #7 (permalink)  
Antiguo 05/11/2013, 11:05
Avatar de iEnrique  
Fecha de Ingreso: abril-2013
Ubicación: España
Mensajes: 346
Antigüedad: 11 años
Puntos: 5
Respuesta: BBCode de Youtube

Cita:
Iniciado por pateketrueke Ver Mensaje
La expresión correcta sería así:


Pero de verdad te sugiero estudiar RegExp también porque son una herramienta básica, y desde luego es un lenguaje completamente a parte, no está bien que alguien más siempre te resuelva los problemas.
Muchas gracias, estuve buscando información y leyendo código por todos lados, pero no encontraba la forma de hacerlo, me has resuleto la vida.

Una vez me dijeron (no sé si fuiste tu) por aquí, cuando estaba empezando a programar, que leyera bien mi código y buscara info. por mi mismo. Eso hice y me fue muy bien con esa táctica que me disteis porque de los errores se aprende mucho, MUCHO. Pero esto ya era una situación desesperada porque no encontraba la forma de hacerlo, muchas gracias de verdad .

Etiquetas: bbcode, 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 05:01.