Ayuda con expresión regular [PHP]

Estado
No está abierto para más respuestas.

Steeep

Cobre
Usuario de Bronce
Mensajes
607
Puntuación de reacción
0
Buenas a todos!

Vengo con un pequeño problemita de PHP (Y MyBB) con una expresión regular donde deseo hacer un reemplazo.

Se trata que al ingresa una URL de Instagram(Instagram) esta se reemplace por un código HTML. Esto lo estoy haciendo con un BBCode de la siguiente forma.

PHP:
preg_replace('#\[inst\]https?:\/\/\.instagram\.com\/p\/([A-Za-z_]+)\/?\[\/inst\]#i', "<object data=\"$1embed/\" width=\"300\" height=\"400\" type=\"text/html\"></object>", $message);

Pero si por ejemplo pongo el siguiente texto este no se reemplaza.
Código:
[inst]http://instagram.com/p/vHKaC3Ppaa[/inst]

Estaba usando este herramienta RegExr: Learn, Build, & Test RegEx y tampoco lo detecta.

Si alguien pudiese echarme un codo lo agradecería un monton.

Saludos. :rolleyes:
 

danielmnb1

Estafador
Mensajes
291
Puntuación de reacción
0
pero exactamente cual es el codigo que se envia y cual se supone que debe regresar?
 

Steeep

Cobre
Usuario de Bronce
Mensajes
607
Puntuación de reacción
0
pero exactamente cual es el codigo que se envia y cual se supone que debe regresar?

Este es el código que se envía (equivale a la variable $message)
[inst]http://instagram.com/p/vHKaC3Ppaa/[/inst]

Y debería regresar algo así
<object data="http://instagram.com/p/vHKaC3Ppaa/embed/" width="300" height="400" type="text/html"></object>
 

Broco

Piedra
Usuario de Piedra
Mensajes
63
Puntuación de reacción
0
Prueba este
\[inst\]https?:\/\/instagram\.com\/p\/([A-z_1-9]+)\/?\[\/inst\]


Fallaba:
\[inst\]https?:\/\/\.instagram\.com\/p\/([A-Za-z_]+)\/?\[\/inst\]
 

Steeep

Cobre
Usuario de Bronce
Mensajes
607
Puntuación de reacción
0
Prueba este
\[inst\]https?:\/\/instagram\.com\/p\/([A-z_1-9]+)\/?\[\/inst\]


Fallaba:
\[inst\]https?:\/\/\.instagram\.com\/p\/([A-Za-z_]+)\/?\[\/inst\]


Ese si ha funcionado :mola: Se ve así

El código lo he dejado así
return preg_replace('#\[inst\]https?:\/\/instagram\.com\/p\/([A-z_1-9]+)(\/?)\[\/inst\]#i', "<object data=\"http://instagram.com/p/$1$2embed/\" width=\"300\" height=\"400\" type=\"text/html\"></object>", $message);

PD: Sabes como podría hacerlo para que si la gente no pone la barrita final en la url, esta se agregue sola en el reemplazo?
 
Estado
No está abierto para más respuestas.
Arriba