Ver Mensaje Individual
  #1 (permalink)  
Antiguo 30/07/2002, 14:54
Avatar de gomo
gomo
 
Fecha de Ingreso: mayo-2002
Ubicación: [email protected]
Mensajes: 906
Antigüedad: 21 años, 11 meses
Puntos: 0
output buffering + highlight_string

Bueno la cosa viene a tono con el post de webstudio por ahi ;)
La funcion highlight_string lo que hace es imprimir en pantalla la cadena solicitada, coloreando su codigo fuente segun los colores que se ven en phpinfo().
El tema es que yo necesito almacenarlo en una BD ademas de imprimirlo asi que no me servia de mucho. Hay una opcion para hacer que devuelva el html, pero solo a partir de php 4.2.x (que no lo tengo ni yo ni mi server).
Enfin, la cosa es que hice una funcion con output buffering y de paso que solo coloree lo que esta entre [SOURCE] y [/SOURCE]
Es esta:
Código:
  
function colorear_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]);
		//highlighteamos lo que nos interesa
		ob_start();
		highlight_string($array_contents[0]);
		$array_contents[0] = ob_get_contents();
		ob_end_clean();
		$final .='<br><font face="Courier new, Courier, Mono" size=3>'.$array_contents[0]."</font><br>".$array_contents[1];
	}
	return $final;
}
Funciona excelente cuando el string se define en un script, es decir de la forma $string = 'echo ...'
El problema esta en que yo necesito que highlightee el codigo que se ingresa por un formulario... Y me pone el siguiente error:
Warning: Unexpected character in input: '\' (ASCII=92) state=1 in c:\mis documentos\gonzalo\solophp-online\includes\global.php on line 140
Se me ocurre que es un problema con los \n de windows que no son realmente \n sino \n\??
Si le saco todas las \ del codigo lo highlightea bien lo q pasa es que no es muy comodo que este todo en una linea
Si a alguien se lo ocurre como darme una mano, desde ya les agradezco!
Saludos y gracias :)


<div align="center"><img src="http://cablemodem.fibertel.com.ar/sainztrapaga/images/firma.jpg" width="435" height="70" border="0">
</div>