Foros del Web » Programando para Internet » PHP »

Resaltar con highlight_string()

Estas en el tema de Resaltar con highlight_string() en el foro de PHP en Foros del Web. Hola, tengo un problema, estoy modificando un editor BBcode, la parte de procesamiento del codigo, ya lo personalize, ahora cuando reemplazo [ code] [/ code] ...
  #1 (permalink)  
Antiguo 08/12/2009, 15:25
Avatar de almagropaco_  
Fecha de Ingreso: marzo-2008
Ubicación: Mar del Plata
Mensajes: 854
Antigüedad: 16 años, 1 mes
Puntos: 25
Resaltar con highlight_string()

Hola, tengo un problema, estoy modificando un editor BBcode, la parte de procesamiento del codigo, ya lo personalize, ahora cuando reemplazo [ code] [/ code] queria resaltar el codigo, y creo que con highlight_string() se puede, entonces, yo hize esto:
Código PHP:
$resaltar "highlight_string($1)";
 
$bbcode[] = '/\[code\](.*)\[\/code\]/is'$html[] = 'Codigo: <pre'.$BoxStyle.'>'.$resaltar.'</pre>'
Eso esta dentro de una funcion, que luego con preg_replace, hace los correspondientes reemplazos..

Última edición por almagropaco_; 08/12/2009 a las 15:32
  #2 (permalink)  
Antiguo 08/12/2009, 15:29
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: Resaltar con highlight_string()

Pero ¿tienes un problema o lo resolviste?
__________________
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 08/12/2009, 15:30
Avatar de almagropaco_  
Fecha de Ingreso: marzo-2008
Ubicación: Mar del Plata
Mensajes: 854
Antigüedad: 16 años, 1 mes
Puntos: 25
Respuesta: Resaltar con highlight_string()

No resalta el codigo, ahora queda asi
Codigo:
highlight_string('<h1>a</h1>')
  #4 (permalink)  
Antiguo 08/12/2009, 15:32
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: Resaltar con highlight_string()

Es que highlight_string es una funcion y la estas colocando como string.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #5 (permalink)  
Antiguo 08/12/2009, 15:37
Avatar de almagropaco_  
Fecha de Ingreso: marzo-2008
Ubicación: Mar del Plata
Mensajes: 854
Antigüedad: 16 años, 1 mes
Puntos: 25
Respuesta: Resaltar con highlight_string()

No entiendo, que deberia hacer.
Ah por cierto, muchas gracias por tu pronta respuesta.
  #6 (permalink)  
Antiguo 08/12/2009, 15:44
serser
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Resaltar con highlight_string()

Código PHP:
$resaltar highlight_string($1); 
  #7 (permalink)  
Antiguo 08/12/2009, 16:45
Avatar de almagropaco_  
Fecha de Ingreso: marzo-2008
Ubicación: Mar del Plata
Mensajes: 854
Antigüedad: 16 años, 1 mes
Puntos: 25
Respuesta: Resaltar con highlight_string()

Cita:
Iniciado por serser Ver Mensaje
Código PHP:
$resaltar highlight_string($1); 
Hola, gracias por tu respuesta, ya lo habia probado, me da este error:
Cita:
Parse error: syntax error, unexpected T_LNUMBER, expecting T_VARIABLE or '$' in /home/a3277071/public_html/editor/2.php on line 24
  #8 (permalink)  
Antiguo 08/12/2009, 16:59
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Resaltar con highlight_string()

Tienes que usar preg_replace_callback para hacer eso.

Saludos.
  #9 (permalink)  
Antiguo 08/12/2009, 17:00
serser
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Resaltar con highlight_string()

Ah!, entoces es que la variable es 'uno', parecía una ele minúscula. Las variables en PHP no pueden empezar por un número.
Y si $1 se refiere al (.*) deberías poner el código así:
Código PHP:
$bbcode[] = '/\[code\](.*)\[\/code\]/is';
$resaltar highlight_string('$1');
$html[] = 'Codigo: <pre'.$BoxStyle.'>'.$resaltar.'</pre>'
  #10 (permalink)  
Antiguo 08/12/2009, 17:07
Avatar de almagropaco_  
Fecha de Ingreso: marzo-2008
Ubicación: Mar del Plata
Mensajes: 854
Antigüedad: 16 años, 1 mes
Puntos: 25
Respuesta: Resaltar con highlight_string()

Cita:
Iniciado por serser Ver Mensaje
Ah!, entoces es que la variable es 'uno', parecía una ele minúscula. Las variables en PHP no pueden empezar por un número.
Y si $1 se refiere al (.*) deberías poner el código así:
Código PHP:
$bbcode[] = '/\[code\](.*)\[\/code\]/is';
$resaltar highlight_string('$1');
$html[] = 'Codigo: <pre'.$BoxStyle.'>'.$resaltar.'</pre>'
Sale esto
$1 Codigo:
1
No sale el texto que envie, asi que no se resalta, y envie lo que envie siempre esta el $1 antes..

Cita:
Tienes que usar preg_replace_callback para hacer eso.

Saludos.
No entiendo para que sirve ni para que me serviria, ya estoy usando preg_replace.

Gracias a todos.
  #11 (permalink)  
Antiguo 08/12/2009, 17:12
serser
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Resaltar con highlight_string()

Si pones el código de la función completo, mejor.

Gracias.
  #12 (permalink)  
Antiguo 08/12/2009, 17:18
Avatar de almagropaco_  
Fecha de Ingreso: marzo-2008
Ubicación: Mar del Plata
Mensajes: 854
Antigüedad: 16 años, 1 mes
Puntos: 25
Respuesta: Resaltar con highlight_string()

Código PHP:
function bbcode2html($cadena){
    
$BoxStyle ' style="border:1px solid #ccc;padding:5px;margin:3px;"';
    
$bbcode[] = '/\[b\](.*)\[\/b\]/is'$html[] = '<b>$1</b>';

$bbcode[] = '/\[code\](.*)\[\/code\]/is'
$resaltar highlight_string('$1'); 
$html[] = 'Codigo: <pre'.$BoxStyle.'>'.$resaltar.'</pre>';   // Codigo
    
    
$cadena preg_replace($bbcode,$html,$cadena);
    return 
$cadena;

En realidad es mucho mas codigo, puse el de negrita como ejemplo de todos los demas que hay y boxstile porque se incluye en el reemplazo de [code].
  #13 (permalink)  
Antiguo 10/12/2009, 23:44
serser
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Resaltar con highlight_string()

Prueba este código:

Código PHP:
Ver original
  1. function bbcode2html($cadena){
  2.     $BoxStyle = ' style="border:1px solid #ccc;padding:5px;margin:3px;"';
  3.     $bbcode[] = '/\[code\](.*)\[\/code\]/se';
  4.     $html[] = "'Codigo: <div $BoxStyle>'.highlight_string(stripslashes('$1'), true).'</div>'";
  5.     $cadena = preg_replace($bbcode, $html, $cadena);
  6.     return $cadena;
  7. }
La clave estaba en el flag e, que evalúa la parte a reemplazar ($html) como si fuera código fuente, cosa totalmente necesaria para la función highlight_string con el parámetro de retorno puesto en true. La etiquete <pre> la he cambiado por <div> ya que la función highlight_string implica la conversión de espacios, saltos de línea, etc., por sus respectivas entidades html.

Última edición por serser; 11/12/2009 a las 02:02
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 12:19.