Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Extraer cadena

Estas en el tema de Extraer cadena en el foro de PHP en Foros del Web. Hola a todos. De antemano agradezco la ayuda. En una base de datos en un campo tengo muchos valores de una antiguo foro en kunena, ...
  #1 (permalink)  
Antiguo 27/05/2013, 12:14
Avatar de MauricioCr  
Fecha de Ingreso: junio-2007
Ubicación: San Pedro, San Jose, Costa Rica, Costa Rica
Mensajes: 67
Antigüedad: 16 años, 10 meses
Puntos: 0
Pregunta Extraer cadena

Hola a todos.

De antemano agradezco la ayuda.

En una base de datos en un campo tengo muchos valores de una antiguo foro en kunena, los cuales los archivos adjuntos los guardaba asi:

Código:
 [attachment=148:g2yv05rz]DSC_0063.JPG[/attachment:g2yv05rz]
Ahora necesito sacar el valor de attachment=148 con expresiones regulares me imagino, pero no soy muy bueno en este tema,

Si alguien es tan amable de ayudarme se lo agradeceria!

Saludos!
  #2 (permalink)  
Antiguo 27/05/2013, 12: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: Extraer cadena

¿Entonces necesitas que te demos el código y la expresión regular o estás dispuesto a aprender para hacerlo por ti mismo?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 27/05/2013, 12:17
Avatar de MauricioCr  
Fecha de Ingreso: junio-2007
Ubicación: San Pedro, San Jose, Costa Rica, Costa Rica
Mensajes: 67
Antigüedad: 16 años, 10 meses
Puntos: 0
Respuesta: Extraer cadena

Hola pateketrueke, gracias por su respuesta, lo ideal seria aprender!
  #4 (permalink)  
Antiguo 27/05/2013, 12:56
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Extraer cadena

Vale, pues mientras mueven tu tema al sub-foro de RegExp te sugiero consultar lo siguiente como introducción: http://www.forosdelweb.com/f18/aport...s-pcre-646110/
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 27/05/2013, 13:04
Avatar de MauricioCr  
Fecha de Ingreso: junio-2007
Ubicación: San Pedro, San Jose, Costa Rica, Costa Rica
Mensajes: 67
Antigüedad: 16 años, 10 meses
Puntos: 0
Respuesta: Extraer cadena

Ya logre sacar el numero:
Código:
$patron = '#\[attachment=([0-9]+)#is';
preg_match($patron, $row[post_content], $salida);
echo $salida[1]
Sigo intentando sacar toda la cadena pero se me pone dificil con tanta variable, las pongo en negrita:

[attachment=148:g2yv05rz]DSC_0063.JPG[/attachment:g2yv05rz]

Son cuatro en total
148
g2yv05rz
DSC_0063.JPG
g2yv05rz

Gracias!
  #6 (permalink)  
Antiguo 27/05/2013, 13:16
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Extraer cadena

Vale, al igual que el número puedes seguir colocando secuencias.
Cita:
/\[x=([0-9]+):([a-z0-9]+)\](.+?)\[\/x:\\2\]/
Desglosando:

([a-z0-9]+) letras y números, el identificador, capturando corresponde al grupo 2

(.+?) "casi cualquier cosa", el valor de la imagen, grupo 3

\\2 "lo mismo que contenga el grupo 2", es decir, el mismo identificador capturado
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #7 (permalink)  
Antiguo 27/05/2013, 13:57
Avatar de MauricioCr  
Fecha de Ingreso: junio-2007
Ubicación: San Pedro, San Jose, Costa Rica, Costa Rica
Mensajes: 67
Antigüedad: 16 años, 10 meses
Puntos: 0
Respuesta: Extraer cadena

Agradezco mucho su ayuda, ahora

Código:
$patron = '/\[attachment=([0-9]+):([a-z0-9]+)\](.+?)/';
Con ese patron tengo:

Código:
Array ( [0] => [attachment=148:g2yv05rz]D [1] => 148 [2] => g2yv05rz [3] => D )
Falta mas en el grupo 3, deberia ser: DSC_0063.JPG (sera por el caracter especial "_")

y con este ya completo:
Código:
$patron = '/\[attachment=([0-9]+):([a-z0-9]+)\](.+?)\[\attachment:\\2\]/';
No obtengo nada.

Gracias!
  #8 (permalink)  
Antiguo 27/05/2013, 14:05
Avatar de MauricioCr  
Fecha de Ingreso: junio-2007
Ubicación: San Pedro, San Jose, Costa Rica, Costa Rica
Mensajes: 67
Antigüedad: 16 años, 10 meses
Puntos: 0
Respuesta: Extraer cadena

Ya lo logre:

Código:
$patron = '#\[attachment=([0-9]+):([a-z0-9]+)\](.+?)\[\/attachment:\\2\]#esi';
Eran algunos signos de menos que no ponia

Muchas gracias!
  #9 (permalink)  
Antiguo 27/05/2013, 14:07
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Extraer cadena

Mira que colocas \attachment cuando debería ser \/attachment pues se está escapando la barra conforme el patrón, por eso es que no te funciona.

Edito: que bueno que ya diste con el clavo, de igual forma te sugiero consultar una referencia para que comprendas mejor las partes de la expresión.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.

Etiquetas: cadena
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:17.