Foros del Web » Programando para Internet » PHP »

Como fomatear codigo para que se vea como show_source()

Estas en el tema de Como fomatear codigo para que se vea como show_source() en el foro de PHP en Foros del Web. Eso quiero sdaber como puedo hacer esto Código PHP: <? $va = "HOLA" ; echo  $va ; ?> eso de mostrar codigo y letras normales. ...
  #1 (permalink)  
Antiguo 19/01/2003, 10:51
Avatar de MSDark  
Fecha de Ingreso: noviembre-2002
Ubicación: Talca VII región
Mensajes: 337
Antigüedad: 15 años
Puntos: 1
Como fomatear codigo para que se vea como show_source()

Eso quiero sdaber como puedo hacer esto
Código PHP:
<?
$va
="HOLA";
echo 
$va;
?>
eso de mostrar codigo y letras normales.

Osea en mi web estoy haciendo tutoriales y quiero mostrar el codigo.,

Entonces lo que hago es escribirlo y guardar en la BD el contenido pasandolo por htmlspecialchars();
y al mostrarlo se ve el code pero yo quiero que ese code se vea colorido como show_source.

Como lo debo hacer algo como

$codigo=show_source($row["contenido"]);
echo $codigo;


Gracias
__________________
DelirioLinux.. Software Libre y tecnología.. php también..
Saludos :arriba:
Usuario Linux #198486 y Ubuntu #12791
Gutsy Gibbon
  #2 (permalink)  
Antiguo 19/01/2003, 10:59
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Con show_source() .. "colorea" la sintax de un archivo .. SI tu tienes tu código en un campo de una base de datos .. (q al final se reduce en un string - cadena) debes usar:

highlight_string()
http://www.php.net/manual/en/functio...ght-string.php

(mira los ejemplos de los usuarios - comentarios)

Un saludo,
  #3 (permalink)  
Antiguo 19/01/2003, 12:08
Avatar de MSDark  
Fecha de Ingreso: noviembre-2002
Ubicación: Talca VII región
Mensajes: 337
Antigüedad: 15 años
Puntos: 1
O sea tendria que encontrar en la variable que contiene el contenido de la bd, encontrar la primera aparicion de <? y la ultima de ?>

con strstr() y strrchr()

y luego guardar en otra variable solo la parte de la cadena que essta entre esos tags.

para luego poner un
Código PHP:
$variable=highlight_string($codigo
Siendo $codigo la variable que almacena el contenido que esta entre los tags <? ?>
pero........ como seria el code entonces

por que si no me equivoco teoricamente estoy bien o no?
__________________
DelirioLinux.. Software Libre y tecnología.. php también..
Saludos :arriba:
Usuario Linux #198486 y Ubuntu #12791
Gutsy Gibbon
  #4 (permalink)  
Antiguo 19/01/2003, 18:56
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
"Teoricamente" estas medio bien .. ¿que pasaría si te pongo código HTML+PHP incrustado? tipo:

<b>Esto es HTML</b>
<?
echo "aqui mi PHP";
?>

Para solucionar eso .. puedes emplear tus propios "tag" que definan donde empieza el código y donde acaba para poder aplicar alguna expresión regular o simples strxxx() ..

Fijate como lo hacen estos foros .. Si tu dices q vas a poner código se lo indicas via:
[PHP...]
<b> Código HTML</b>
<?
// código PHP
?>
[/PHP...]

(los ... son para que justamente este foro no me interprete su propio tag de codigo para q veas el ejemplo)

Por lo tanto .. a la hora de "redactar" ese tutorial o si lo tienes ya escrito .. tendras q insertar esos psudo-codigos tuyos para poder realmente identificar donde empieza el "código" o no ...

Si te fijas en el link q te dí del manual de PHP sobre la funcion en cuestion . mira el ultimo comentario de los usuarios .. Justamente es un ejemplo de lo que te comento (de la parte q identifica [php..] ... codigo ... [/php...] )

Un saludo,
  #5 (permalink)  
Antiguo 19/01/2003, 19:37
Avatar de MSDark  
Fecha de Ingreso: noviembre-2002
Ubicación: Talca VII región
Mensajes: 337
Antigüedad: 15 años
Puntos: 1
a ver lo que hice fue tomar ese ejemplo (en realidad copiarlo por ahora) y agregarle algunas cosillas


Código PHP:
function color_source($string){
$array_contenido explode("[source]",$string);
$final $array_contenido[0];
for(
$i 1;$i <= count($array_contenido);$i++){
$array_contents explode("[/source]",$array_contenido[$i]);
ob_start();
highlight_string($array_contents[0]);
$array_contents[0] = ob_get_contents();
ob_end_clean();
$final .='
<font face="Courier new, Courier, Mono" size=3>'
.$array_contents[0]."</font>
"
.$array_contents[1];
}
return 
$final;
}

//para mostrar el texto pondria algo asi

$texto=$row["contenido"];
$texto=str_replace(" \n","<br>"$texto);
echo 
color_source($texto); 
el problema es que con eso me muestra esto
Código PHP:
<? <br>echo 
WarningUnexpected character in input:  (ASCII=92state=1 in c:archivos de programaapache groupapachehtdocsshow_source.php on line 8
"lalala\"; <br>?> <br>
osea me da ese error y me muestra los saltos de linea dentro del codigo php.

como hago para que pase eso y por que me da ese error

Gracias
__________________
DelirioLinux.. Software Libre y tecnología.. php también..
Saludos :arriba:
Usuario Linux #198486 y Ubuntu #12791
Gutsy Gibbon
  #6 (permalink)  
Antiguo 19/01/2003, 20:17
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Bueno .. mm esto:

$texto=str_replace(" \n","<br>"$texto);

ya lo hace PHP con:
$texto=nl2br($texto);

De todas formas .. al usar
highlight_string() ... mm mejor no uses esa funcion .. pues si mal no recuerdo ya mete saltos de linea e identa creo q tambien ...

Un saludo,
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 07:22.