
Casualmente hoy tuve la necesidad de insertar código PHP en mi blogger, me sorprendió el hecho de que no existiera algún tipo de etiqueta (o no a primera vista) para insertar código y que fuese formateado automáticamente. Googleando un poco me encontré con un blog (
web2development) donde el autor comentaba una posible solución con un script que el mismo generó. Sin embargo era necesario que ver el código fuente una vez corrido el script para obtener finalmente el resultado (script formateado). Realicé unas pequeñas mejoras al script y decidí alojarlo en nuestro servidor para que sirva como herramienta para mí y quien lo necesite. Puedes emplear el siguiente enlace para formatear tus códigos en PHP (Inicialmente PHP, quisiera más adelante añadir para otros lenguajes).
Formatea Tu Código No estaría completo este post si no incluyera el código del script con las modificaciones que realicé. Básicamente el script imprime el resultado en un div aparte; también preferí insertar un salto en html en la línea quince (15). Se agregaron algunas lineas para cambiar los caracteres que causaban conflictos. Almacené temporalmente el resultado del script en un archivo para luego obtener directamente su código fuente y generarlo para uso del usuario.
1 <!— Form for code –>
2 <form action=”<?php echo $_SERVER['PHP_SELF']; ?>” method=”post” style=”margin-bottom: 40px;”><div id=”formulario”>
3 <textarea rows=”20″ cols=”80″ name=”codigo”></textarea><br />
4 <input type=”submit” name=”enviar” value=”Formatear” /></div>
5 </form>
6 <?php
7 if( !empty( $_POST['codigo'] ) ) {
8 $codigo = $_POST['codigo'];
9 $codigo = str_replace( “\t”, ” “, $codigo );
10 $codigo = highlight_string( stripslashes( $codigo ), true );
11
12 $line = 1;
13 $buffer = array();
14 $cod = explode( “<br />”, $codigo );
15 foreach( $cod as $codLine ) {
16 $buffer[] = “<b>$line</b> ” . $codLine;
17 $line++;
18 }
19
20 $codigo = implode( “<br />”, $buffer );
21 // HACK:
22 $codigo = str_replace( “<b>1</b> <code>”, “<code><b>1</b> ”, $codigo );
23 echo ‘<div id=”formated” style=”border: double #dfdfdf;”><h3> Este es tu código formateado </h3>’;
24 echo ‘<p>’.$codigo.‘</p><hr />’;
25 //Gets the source from a file previously created and modified
26 $abrir=fopen(“tmp.txt”, “w”); //open file
27 fwrite($abrir, $codigo); //save code obtained previously
28 fclose($abrir); //close file
29 $url = ‘http://formatealo.terysoftware.com/tmp.txt’;
30 $lineas = file($url);
31 for ($i = 0; $i <count($lineas); $i++) {
32 $resultado = $resultado.htmlentities($lineas[$i]).“<br />”;
33 }
34
35 echo ‘<h3>Inserta este código en tu sitio </h3>’.$resultado.‘</div>’;
36 }
37 ?>
38
39 </div>