Foros del Web » Programando para Internet » PHP »

Reconocer texto

Estas en el tema de Reconocer texto en el foro de PHP en Foros del Web. Hola quiero saber como hacer para guardar en una variable $x el contenido de una cadena que este entre los tags [abrir] y [/abrir] por ...
  #1 (permalink)  
Antiguo 01/04/2005, 11:09
Avatar de Reynier  
Fecha de Ingreso: noviembre-2002
Ubicación: Por ahí en algún sitio
Mensajes: 1.844
Antigüedad: 22 años
Puntos: 1
Reconocer texto

Hola quiero saber como hacer para guardar en una variable $x el contenido de una cadena que este entre los tags [abrir] y [/abrir] por ejemplo para asi formar algo asi como un parser de BBCode.

Salu2
__________________
Ing. Reynier Pérez Mira
  #2 (permalink)  
Antiguo 01/04/2005, 11:34
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
Puedes usar Expresiones regulares ..

http://www.php.net/manual/en/functio...-match-all.php

Código PHP:
$x_array=preg_match_all('~\[abrir\](.*?)\[\/abrir\]~is',$texto_origen); 
En principio eso te devolverá un array con las ocurrencias de tu patrón ([abrir]...[/abrir]) en esa cadena ($texto_origen). Si es así y sabes que sólo vas a tener una de esas aparaciones .. podrías ir directo al resultado del array 0 ...

Un saludo,

PD: no sé si será correcta la expresión regular . .pero .. va por ahí el tema.

Última edición por Cluster; 01/04/2005 a las 11:35
  #3 (permalink)  
Antiguo 14/04/2005, 18:17
Avatar de mixba  
Fecha de Ingreso: noviembre-2003
Ubicación: CPU (Interior)
Mensajes: 116
Antigüedad: 21 años
Puntos: 0
Hola:

Tengo un pequeño problema con BBCode, resulta que quiero extraer el texto de unos foros desde una base de datos, este foro es el famoso phpBB, el problema radica en que cuando uno postea un mensaje y lo hace con BBCode, la mayoría de las etiquetas van guardadas con el $uid del usuario por lo que por ejemplo una etiqueta para mostrar negrita queda asi:
Código:
   [b:ee6deedfc1 ]Mensaje[/b:ee6deedfc1 ]
en vezde
Código:
[b ]Mensaje[/b ]
, entonces colocando esto:
Código PHP:
$text=preg_replace("(\[b\](.+?)\[\/b])is",'<b>$1</b>',$text); 
, no funciona .
Como debería hacer para solucionar eso?

Gracias
  #4 (permalink)  
Antiguo 16/04/2005, 08:47
Avatar de mixba  
Fecha de Ingreso: noviembre-2003
Ubicación: CPU (Interior)
Mensajes: 116
Antigüedad: 21 años
Puntos: 0
Resuelto! (.+?) :)

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 21:45.