Foros del Web » Programando para Internet » PHP »

Fallo en una especie de 'bbcode'.

Estas en el tema de Fallo en una especie de 'bbcode'. en el foro de PHP en Foros del Web. Hola, un saludo a todos. Intentando crear un editor de texto para el gestor de la web de una empresa (los editores WYSIWYG no les ...
  #1 (permalink)  
Antiguo 21/04/2005, 03:38
 
Fecha de Ingreso: marzo-2005
Mensajes: 197
Antigüedad: 12 años, 9 meses
Puntos: 1
Exclamación Fallo en una especie de 'bbcode'.

Hola, un saludo a todos.

Intentando crear un editor de texto para el gestor de la web de una empresa (los editores WYSIWYG no les funcionan debido a sus versiones del explorer) he hecho un script (adaptado de no recuerdo donde) que genera tag's de bbcode y los transforma a HTML guardándolo todo en una tabla MySQL.

El script la inserción la realiza perfectamente, el problema viene cuando quiero modificar el texto de un registro determinado, ya que al visualizarlo, no me escribe en el textarea el 'bbcode' (por llamarlo de alguna manera) sino que me escribe directamente el contenido de la tabla en HTML, ignorando (o quizás la función esté mal, no sé) la función que deberia generar HTML a partir de los tag's de 'bbcode'.

La función es esta:

Código PHP:
function htmlcode($text)
{
    
$bucle 0;

    
$finaltext eregi_replace("<a target=\"_blank\" href=\"\\1\">\\2</a>","\\[web=([^\\[]*)\\]([^\\[]*)\\[/web\\]"$text);
    
$finaltext eregi_replace("<a target=\"_blank\" href=\"\\1\">\\1</a>","\\[web\\]([^\\[]*)\\[/web\\]",$finaltext);
    
$finaltext eregi_replace("<img src=\"\\1\">","\\[img\\]([^\\[]*)\\[/img\\]",$finaltext);
    
$finaltext eregi_replace("<p>\\1</p>","\\[p\\]([^\\[]*)\\[/p\\]",$finaltext);
    
$finaltext eregi_replace("<br>","\\[br\\]",$finaltext);

    while(
$bucle 5)
    {
        
$finaltext eregi_replace("<u>\\1</u>","\\[u\\]([^\\[]*)\\[/u\\]"$finaltext);
        
$finaltext eregi_replace("<em>\\1</em>","\\[i\\]([^\\[]*)\\[/i\\]"$finaltext);
        
$finaltext eregi_replace("<strong>\\1</strong>","\\[b\\]([^\\[]*)\\[/b\\]"$finaltext);

        
$bucle++;
    }
    return 
$finaltext;

¿Alguien podría ayudarme?
Muchas gracias y un saludo.
  #2 (permalink)  
Antiguo 22/04/2005, 04:50
 
Fecha de Ingreso: marzo-2005
Mensajes: 197
Antigüedad: 12 años, 9 meses
Puntos: 1
Al final conseguí arreglarlo de la siguiente manera

Código PHP:
$bb_code1 = array(
'[b]' => '<strong>',
'[/b]' => '</strong>',

'[i]' => '<em>',
'[/i]' => '</em>',

'[u]' => '<u>',
'[/u]' => '</u>',

'[p]' => '<p>',
'[/p]' => '</p>',

'[br]' => '<br>',

'[img]' => '<img src="',
'[/img]' => '" />'
);

$bb_code2 = array(
'<strong>' => '[b]',
'</strong>' => '[/b]',

'<em>' => '[i]',
'</em>' => '[/i]',

'<u>' => '[u]',
'</u>' => '[/u]',

'<p>' => '[p]',
'</p>' => '[/p]',

'<br>' => '[br]',

'<img src="' => '[img]',
'" />' => '[/img]'

);

function 
bbcodes($text)
{
    
$search array_keys($GLOBALS['bb_code1']);
    
$finaltext str_replace($search$GLOBALS['bb_code1'], $text);
    return 
$finaltext;
}

function 
htmlcode($text)
{
    
$search array_keys($GLOBALS['bb_code2']);
    
$finaltext str_replace($search$GLOBALS['bb_code2'], $text);
    return 
$finaltext;

Pero no se me ocurre como tratar a los tag's [URL] para que me generen etiquetas <a> (dado que si lo hago tal y como está ahora el script me quedarían como '<a href="direccion"></a>' y no creo que se visualizase nada...

En fin si alguien me puede aportar alguna idea se lo agradeceré.
Un saludo.
  #3 (permalink)  
Antiguo 24/05/2005, 11:40
 
Fecha de Ingreso: marzo-2005
Mensajes: 197
Antigüedad: 12 años, 9 meses
Puntos: 1
¿Nadie sabría ayudarme? Gracias de todos modos.
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 20:56.