Foros del Web » Programando para Internet » PHP »

ayuda array bbcode to html

Estas en el tema de ayuda array bbcode to html en el foro de PHP en Foros del Web. Holas, tengo esta funcion Código PHP: function  bb2html ( $text ) {   $bbcode  = array( "<" ,  ">" , '[COLOR="' ,  "[/COLOR]" , '"]' );  ...
  #1 (permalink)  
Antiguo 13/10/2009, 14:21
Avatar de sandrox23  
Fecha de Ingreso: abril-2005
Ubicación: Lima - Peru
Mensajes: 274
Antigüedad: 19 años
Puntos: 0
Pregunta ayuda array bbcode to html

Holas, tengo esta funcion

Código PHP:
function bb2html($text)
{
 
$bbcode = array("<"">",'[COLOR="'"[/COLOR]",'"]'); // aqui esta la dificultad
$htmlcode = array("&lt;""&gt;","<span style=\"color:""</span>",'">');
.
.

supongamos mi texto es:

Código PHP:
$texto ' [COLOR=red]Holas[/COLOR]'
mi resutado es:

Código PHP:
[COLOR=Red]Holas 
pero si lo pongo asi

Código PHP:
$texto ' [COLOR="red"]Holas[/COLOR]';  // con las comillas 
aqui si me reconoce todo bien, pero esa no es la idea, lo ideal es que me funcione sin usar las comillas, espero que em ayuden

saludos
__________________
diseniando ........
  #2 (permalink)  
Antiguo 13/10/2009, 14:52
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: ayuda array bbcode to html

Te sugiero mejor usar expresiones regulares para poder lograr lo que quieres
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #3 (permalink)  
Antiguo 13/10/2009, 14:58
Avatar de sandrox23  
Fecha de Ingreso: abril-2005
Ubicación: Lima - Peru
Mensajes: 274
Antigüedad: 19 años
Puntos: 0
Respuesta: ayuda array bbcode to html

Cita:
Iniciado por abimaelrc Ver Mensaje
Te sugiero mejor usar expresiones regulares para poder lograr lo que quieres
abimaelrc como es eso de expresiones regulares? saber donde puedo encontrar algun ejemplo de como hacerlo .

saludos
__________________
diseniando ........
  #4 (permalink)  
Antiguo 13/10/2009, 14:59
Avatar de spider_boy  
Fecha de Ingreso: diciembre-2003
Ubicación: Chile
Mensajes: 1.855
Antigüedad: 20 años, 4 meses
Puntos: 89
Respuesta: ayuda array bbcode to html

Cita:
Iniciado por abimaelrc Ver Mensaje
Te sugiero mejor usar expresiones regulares para poder lograr lo que quieres
Ejemplo:

Código php:
Ver original
  1. $busca = "#\[color=\"?(\w+)\"?\](.*?)\[\/color\]#is";
  2. $reemplaza = "<span style=\"color:$1\">$2</span>";
  3.  
  4. $texto = "[color=blue]Hola[/color] [color=\"red\"]Mundo[/color]";
  5.  
  6. echo preg_replace($busca, $reemplaza, $texto);

No soy muy hábil con las expresiones regulares, pero lo probé y funcionó

Nos vemos xD
__________________
Nunca te olvidaré mi negra hermosa. Te extraño demasiado.
  #5 (permalink)  
Antiguo 14/10/2009, 10:24
Avatar de sandrox23  
Fecha de Ingreso: abril-2005
Ubicación: Lima - Peru
Mensajes: 274
Antigüedad: 19 años
Puntos: 0
Respuesta: ayuda array bbcode to html

Gracias spider_boy por la ayuda, ahora estoy usando un mod llamado parse.php y con ese mod ya no tengo ese problema

Código PHP:
$s preg_replace("#\[color\=(\#[0-9A-F]{0,6}|[A-z]+)\](.*)\[\/color\]#Ui""<span style=\"color: $1;\">$2</span>"$s); 
pero ahora resulta que si quiero que me funcione esto
Código PHP:
[COLOR="RED"] [/COLOR
(con las comillas) no funciona en ese mod, intente hacerlo deacuerdo al ejemplo que me pusiste quitandole los "\" pero aun asi nada, podrias ayudarme por favor?
__________________
diseniando ........
  #6 (permalink)  
Antiguo 14/10/2009, 10:38
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: ayuda array bbcode to html

Prueba con esta expresión regular:
@\[color="?(#[0-9a-f]{0,6}|[a-z]+)"?](.*)\[/color]@Ui
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #7 (permalink)  
Antiguo 14/10/2009, 13:32
Avatar de sandrox23  
Fecha de Ingreso: abril-2005
Ubicación: Lima - Peru
Mensajes: 274
Antigüedad: 19 años
Puntos: 0
Respuesta: ayuda array bbcode to html

Cita:
Iniciado por David Ver Mensaje
Prueba con esta expresión regular:
@\[color="?(#[0-9a-f]{0,6}|[a-z]+)"?](.*)\[/color]@Ui
hola David, gracias pero aun no me funciona me tira este error:

Warning: Unexpected character in input: '\' (ASCII=92) state=1 in ........c
__________________
diseniando ........
  #8 (permalink)  
Antiguo 14/10/2009, 14:02
Avatar de spider_boy  
Fecha de Ingreso: diciembre-2003
Ubicación: Chile
Mensajes: 1.855
Antigüedad: 20 años, 4 meses
Puntos: 89
Respuesta: ayuda array bbcode to html

Pruebalo asi

Código PHP:

preg_replace
("@\[color=\"?(#[0-9a-f]{0,6}|[a-z]+)\"?\](.*)\[\/color\]@Ui"$reemplazo$cadena); 
Nos cuentas.
__________________
Nunca te olvidaré mi negra hermosa. Te extraño demasiado.
  #9 (permalink)  
Antiguo 14/10/2009, 14:40
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: ayuda array bbcode to html

O mejor aún, usando comillas simples (ya que en ningún momento se usa una variable dentro de la cadena:
Código PHP:
Ver original
  1. $texto = preg_replace('@\[color="?(#[0-9a-f]{0,6}|[a-z]+)"?](.*)\[/color]@Ui', '<span style="color: $1;">$2</span>', $texto);
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #10 (permalink)  
Antiguo 15/10/2009, 08:40
Avatar de sandrox23  
Fecha de Ingreso: abril-2005
Ubicación: Lima - Peru
Mensajes: 274
Antigüedad: 19 años
Puntos: 0
les agradesco bastante su ayuda pero aun asi nada

Código PHP:
$s preg_replace("#\[ame\](.*)\[\/ame\]#Ui""<a href=\"$1\">$1</a>"$s);
    
$s preg_replace("#\[url\=(.*)\](.*)\[\/url\]#Ui""<a href=\"$1\" target=\"_blank\">$2</a>"$s);
    
$s preg_replace("#\[url\](.*)\[\/url\]#Ui""<a href=\"$1\" target=\"_blank\">$1</a>"$s);
    
$s preg_replace("#\[img\](.*)\[\/img\]#Ui""<img width=\"80%\" src=\"$1\" border=\"0\" />"$s);
    
$s preg_replace("#\[email\=(.*)\](.*)\[\/email\]#Ui""<a href=\"mailto: $1\">$2</a>"$s);
    
$s preg_replace("#\[email\](.*)\[\/email\]#Ui""<a href=\"mailto: $1\">$1</a>"$s);
    
$s preg_replace("#\[font\=(.*)\](.*)\[\/font\]#Ui""<span style=\"font-family: $1;\">$2</span>"$s);
    
$s preg_replace("#\[color\=(\#[0-9A-F]{0,6}|[A-z]+)\](.*)\[\/color\]#Ui""<span style=\"color: $1;\">$2</span>"$s);
//linea agregada
    
$s preg_replace("@\[color=\"?(#[0-9a-f]{0,6}|[a-z]+)\"?\](.*)\[\/color\]@Ui"'<span style="color: $1;">$2</span>'$s); 
Código PHP:
$texto '[color="red"]holas[/color]'
y con esto obtengo el mismo resultado ..

result
Código HTML:
[color="red"]holas[/color]
encontre este codigo y creo que funciona a excepcion del color que no me anda, no se que le falta modificar para que me reconozca el color

Código PHP:
$s preg_replace("/(\[)(color)(=)(['\"]?)([^\"']*)(\\4])(.*)(\[\/color\])/siU""<span style=\"color:\\5\">\\7</span>"$s); 
entrada:

Código PHP:
$texto '[color="red"]holas[/color]'
salida pero sin color

Código HTML:
holas
<!-- viendo el source esto me da -->
<span style="color:&quot;Red&quot;"><strong>holas</strong></span> 

amigos sus codigos que me pasaron si funciona pero solos sin usar el modulo que yo uso, creo q hace conflicto con el modulo completo que uso y no hace el cambio.

saludos
__________________
diseniando ........

Última edición por GatorV; 15/10/2009 a las 09:49
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 23:40.