Foros del Web » Programando para Internet » PHP »

Problema con expresiones regulares al volcar contenido

Estas en el tema de Problema con expresiones regulares al volcar contenido en el foro de PHP en Foros del Web. Tengo el siguiente inconveniente al volcar el contenido desde la base de datos. El codigo PHP del parser es: Código PHP: function  limpiar (  $source  ...
  #1 (permalink)  
Antiguo 28/05/2013, 10:20
Avatar de wowmatu  
Fecha de Ingreso: marzo-2013
Mensajes: 11
Antigüedad: 9 años, 5 meses
Puntos: 0
Problema con expresiones regulares al volcar contenido

Tengo el siguiente inconveniente al volcar el contenido desde la base de datos.

El codigo PHP del parser es:
Código PHP:
function limpiar$source )
{
return 
preg_replace_callback(
"/\[([^\]=:]*) ([=:])?([^\]]*)?\] (.*) \[\/\\1[^\]]*\]/",
function(
$match) {
$noBorrar = array("center","b");
return (
array_search($match[1], $noBorrar ) !== FALSE) ? $match[4] : "";},
$source); 

Al utilizar la funcion limpiar, quiero que me elimine todos los BBCODE de la entrada y su contenido menos el del bbcode del [CENTER]

los bbcode como me figuran son:

Código PHP:
[img:1po49hhv]http://www.dogster.com/files/after%20administration%20crop.jpg[/img:1po49hhv]
[video:3tnj7i7d]http://www.youtube.com/watch?v=XAOUlsrmzYM[/video:3tnj7i7d]
[b:s85gxxhg]HTC Firstel smartphone de y con Facebook[/b:s85gxxhg]


[list:
s85gxxhg] [*:s85gxxhg]Sistema operativo [b:s85gxxhg]Android 4.1 Jelly Bean[/b:s85gxxhg][/*:m:s85gxxhg] [*:s85gxxhg]Pantalla 4.3 pulgadas con resolución 1280x720 píxeles. Densidad 342 ppi.[/*:m:s85gxxhg] [*:s85gxxhg]Procesador Snapdragon 400 de doble núcleo.[/*:m:s85gxxhg] [*:s85gxxhg]GPU Adreno 305.[/*:m:s85gxxhg] [*:s85gxxhg]1 GB de memoria RAM.[/*:m:s85gxxhg] [*:s85gxxhg]16 GB de memoria de almacenamiento. No expansibles. [/*:m:s85gxxhg] [*:s85gxxhg]Camara principal de 5 megapíxeles con auto-focus y FlashLED. Camara frontal de 1.6 megapíxeles.[/*:m:s85gxxhg] [*:s85gxxhg]HTC Sense 4.1, Instagram y Facebook Home de serie.[/*:m:s85gxxhg] [*:s85gxxhg]Batería 2000 mAh [/*:m:s85gxxhg][/list:u:s85gxxhg] [center:s85gxxhg][img:s85gxxhg]http://imageshack.us/a/img829/6071/htcfirstcolors.jpg[/img:s85gxxhg][/center:s85gxxhg] 
  #2 (permalink)  
Antiguo 28/05/2013, 10:32
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 14 años, 4 meses
Puntos: 2534
Respuesta: Problema con expresiones regulares al volcar contenido

Pues array_search() no va a funcionar, porque busca por frases completas y claro que "center" sólo no existe, sino "center:<algo>" entonces por eso no reacciona la lógica ahí.

Me pregunto si podrías iterar dicho array de palabras prohibidas y comparar el $match[1] con strpos(), o bien, aplicar otra expresión regular para el mismo efecto.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 28/05/2013, 12:17
Avatar de wowmatu  
Fecha de Ingreso: marzo-2013
Mensajes: 11
Antigüedad: 9 años, 5 meses
Puntos: 0
Respuesta: Problema con expresiones regulares al volcar contenido

Cita:
Iniciado por pateketrueke Ver Mensaje
Pues array_search() no va a funcionar, porque busca por frases completas y claro que "center" sólo no existe, sino "center:<algo>" entonces por eso no reacciona la lógica ahí.

Me pregunto si podrías iterar dicho array de palabras prohibidas y comparar el $match[1] con strpos(), o bien, aplicar otra expresión regular para el mismo efecto.
me podrias explicar un poco, de como armar el codigo.. Soy nuevo en php y ese codigo que puse arriba me lo paso un amigo

Etiquetas: contenido, expresiones, regulares
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 17:20.