Código PHP:
Ver original
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta name="http-equiv" content="Content-type: text/html; charset=UTF-8"/> <title></title> <style type="text/css"> .contenedor { background: #EEEEEE; border:1px solid rgb(120,120,120); width:400px; overflow:auto; } #lenguaje { background: orange; font: 12px verdana; color: #000000; padding-left: 4px; width:100px; height:18px; } .contenido1, .contenido2 { font: 12px monospace; color: #000000; padding-top: 1px; padding-bottom: 1px; } .contenido1 { background: #FFFFFF; } .contenido2 { background: transparent; } </style> </head> <body> <?php function EnvuelveCod($cadena) { // Cambia caracteres especiales por sus entidades HTML $cadena = str_replace("|", "|", $cadena); $cadena = str_replace("?", "?", $cadena); $cadena = str_replace("¿", "¿", $cadena); // Reemplaza los corchetes por entidades cuendo no equivalen a las etiquetas de código $patron1 = "/\[(?!(\/*)code)(.*)(\])/i"; // Este reemplazo hay que hacerlo aquí, para que no afecte al cierre de las etiquetas // Reemplaza las etiquetas de código por el caracter "|". Se puede escoger cualquier otro caracter $patron2 = "/(\r?[^a-z0-9&]?\[.*?\]\r?[^a-z0-9&]?)/i"; // Reemplaza las etiquetas de códogo y todo el texto que no está envuelto en ellas. // Solo mantenemos el lenguaje (atributo) de las etiquetas en caso que lo tengan y se le añade el caracter "|" . // Se puede escoger cualquier otro caracter $patron3 = '/([^\[]*)(\[(?:[^"\]]+))(["]?)(\s*)(.*?)\4\3(\][^\[]*)(\[[^\[]+)/i'; // Separamos el lenguaje $contador = 0; // Este reemplazo hay que hacerlo aquí //$RempEtiquetas = htmlspecialchars($RempEtiquetas); // Separamos el texto plano del código $enumeraYcolorea_linea = ""; // Es texto plano if ($n % 2 == 0 ) { $enumeraYcolorea_linea .= $arretiqueta[$n]; //Es código } else { // En la etiqueta de código no se especifica lenguaje if (($arrlang[$contador] == "") || ($arrlang[$contador] == null)) { $encabezado = ""; // Se especifica lenguaje } else { $encabezado = '<div id="lenguaje">' .$arrlang[$contador]. '</div>'; } $contador += 1; $enumeraYcolorea_linea .= '<pre><div class="contenedor">' .$encabezado. '<ol type="1">'; switch ($resto) { // Coloreamos cada linea case 0: $estilo = "contenido1"; break; case 1: $estilo = "contenido2"; break; } $enumeraYcolorea_linea .= '<li class="'.$estilo.'">' . $array_codigo[$i]. '</li>'; } $enumeraYcolorea_linea .= '</ol></div></pre>'; } } // Reemplamos los saltos de linea return $strTemp; } // Función para subir a la bd el html generado // Recibe el html de la bd //echo stripslashes(campo); ?> </body> </html>
Uso
Código:
Código montado por [Adler] [c o d e="javascript"]funcion funcion() { document.write ("hola"); }[/c o d e] Las etiquetas de código pueden contener el lenguaje usado o no [c o d e="php"]<?php $arr = Array(1,2,3,"a"); echo $arr[0]; ?> [/c o d e] [c o d e]<% Dim bienvenida bienvenida = "mundo" response.write "hola" & bienvenida %> [/c o d e] También podemos hacer que no se ejecuten las entidades HTML [c o d e="php"] <?php $cadena = str_replace("<", "<", $cadena); $cadena = str_replace(">", ">", $cadena); $cadena = str_replace("{", "& #123;", $cadena); $cadena = str_replace("}", "& #125;", $cadena); $cadena = str_replace("$", "& #36;", $cadena); $cadena = str_replace("%", "& #37;", $cadena); $cadena = str_replace("(", "& #40;", $cadena); $cadena = str_replace(")", "& #41;", $cadena); $cadena = str_replace("\\", "& #92;", $cadena); $cadena = str_replace("|", "& #124;", $cadena); $cadena = str_replace(":", "& #58;", $cadena); $cadena = str_replace("?", "& #63;", $cadena); $cadena = str_replace("¿", "¿", $cadena); $cadena = str_replace("!", "& #33;", $cadena); $cadena = str_replace("+", "& #43;", $cadena); $cadena = str_replace("*", "& #42;", $cadena); $cadena = str_replace(",", "& #44;", $cadena); $cadena = str_replace("-", "& #45;", $cadena); $cadena = str_replace("_", "& #95;", $cadena); $cadena = str_replace("=", "& #61;", $cadena); $cadena = str_replace("'", "& #39;", $cadena); $cadena = str_replace(".", "& #46;", $cadena); $cadena = str_replace("^", "& #94;", $cadena); $cadena = str_replace("¡","¡", $cadena); $cadena = str_replace("ñ","ñ", $cadena); $cadena = str_replace("Ñ","Ñ", $cadena); $cadena = str_replace("á","á", $cadena); $cadena = str_replace("Á","Á", $cadena); $cadena = str_replace("é","é", $cadena); $cadena = str_replace("É","É", $cadena); $cadena = str_replace("í","í", $cadena); $cadena = str_replace("Í","Í", $cadena); $cadena = str_replace("ó","ó", $cadena); $cadena = str_replace("Ó","Ó", $cadena); $cadena = str_replace("ú","ú", $cadena); $cadena = str_replace("Ú","Ú", $cadena); ?> [/c o d e] Suerte