Bueno ante todo he de decirles que casi casi tengo terminado mi Foro. Por lo menos la parte de mostrar las cosas. No he realizado nada de realizar las inserciones en tablas todavía. Hace unos días me topé con un POST donde se hablaba de un código para parsear BBCode. El link es este por si quieren revisarlo:
http://www.php-hispano.net/archivos/Manuales/126. Pues bien he bajado y modificado un poco ese código para adaptarlo a mis necesidades. Este es el resultado de esa modificación:
Código PHP:
# Mod: BBCode
function BBCode($text){
# Links para URLs. Formato: [web=http://www.miweb.com]Mi web[/web]
$bbcode = eregi_replace("\\[web=([^\\[]*)\\]([^\\[]*)\\[/web\\]", "<a target=\"_blank\" href=\"\\1\">\\2</a>", $bbcode);
# Si no ponen atributos en [web]. Formato: [web]http://www.miweb.com[/web]
$bbcode = eregi_replace("\\[web\\]([^\\[]*)\\[/web\\]","<a target=\"_blank\" href=\"\\1\">\\1</a>",$bbcode);
# Bucle por si usan [B][U][I] en el mismo texto
while($bucle<5) {
# Para poner linea al texto. Formato: [U]MiWeb[/U]
$bbcode = eregi_replace("\\[u\\]([^\\[]*)\\[/u\\]","<u>\\1</u>",$bbcode);
# Para poner el text en italic. Formato: [I]MiWeb[/I]
$bbcode = eregi_replace("\\[i\\]([^\\[]*)\\[/i\\]","<em>\\1</em>",$bbcode);
# Para poner texto en negrita Formato: [B]MiWeb[/B]
$bbcode = eregi_replace("\\[b\\]([^\\[]*)\\[/b\\]","<strong>\\1</strong>",$bbcode);
$bucle++;
}
# Para centralizar un texto. Formato: [centro] [/centro]
$bbcode = eregi_replace("\\[center\\]([^\\[]*)\\[/center\\]","<div align=center>\\1</div>", $bbcode);
# Para centralizar un texto. Formato: [derecha] [/derecha]
$bbcode = eregi_replace("\\[right\\]([^\\[]*)\\[/right\\]","<div align=right>\\1</div>", $bbcode);
# Para centralizar un texto. Formato: [izquierda] [/izquierda]
$bbcode = eregi_replace("\\[left\\]([^\\[]*)\\[/left\\]","<div align=left>\\1</div>", $bbcode);
# Para centralizar un texto. Formato: [justificado] [/justificado]
$bbcode = eregi_replace("\\[justify\\]([^\\[]*)\\[/justify\\]","<div align=justify>\\1</div>", $bbcode);
# Pone el texto como una cita. Formato: [CITA] [/CITA]
$bbcode = eregi_replace("\\[cita\\]([^\\[]*)\\[/cita\\]","\n<div class=\"css_title\">Cita\n<div class=\"css\">\\1</div></div>", $text);
# Sacamos el color al codigo PHP. Formato: [ PHP ] [ /PHP ]
preg_match_all ("/(\[)(php)(])(.*)(\[\/php\])/iU", $text, $l);
for($i=0; $i< count($l[0]); $i++){
$bbcode = str_replace($l[0][$i],PHPFormat($l[4][$i]),$text);
}
return $bbcode;
}
#Funcion para código PHP
function PHPFomrmat($php) {
$php = str_replace("<br \>","\n",$php);
ob_start();
highlight_string($php);
$cfinal = ob_get_contents();
ob_end_clean();
$keycol=ini_get("highlight.keyword");
$manual="http://www.php.net/manual-lookup.php?lang=es&pattern=";
$cfinal=preg_replace('{([\w_]+)(\s*</font>)'.
'(\s*<font\s+color="'.$keycol.'">\s*\()}m',
'<a href="'.$manual.'$1" title="Ayuda en PHP.net sobre $1" target="_blank">$1</a>$2$3',
$cfinal);
return "<div class='ccs_title'>Código PHP:<div class='css'>".$cfinal."</div></div>";
}
pues bien lo que pasa es que cuando llamo a esa función con resultados sacados de una BDatos dígamos que este sea el contenido de lo que he sacado de la BDatos:
[QUOTE]
[ b ] Ya que algunas personas me lo han pedido estas son las ventajas que ofrece el PHP sobre otros lenguajes de programación: [ /b ]
Las páginas HTML estáticas que has realizado son eso mismo .. estáticas. No hay procesos automáticos como los que podrías hacer desde PHP. Ejemplo: actualizar contenido; en tus páginas HTML actuales .. si quieres cambiar algo del contenido debes usar tu editor HTML .. modificarla en tu PC .. tener los conocimientos suficientes de HTML y manejo de esas aplicaciones y subirlo a tu servidor nuevamente. En resumen .. tu cliente depende de tu disponibilidad para esa taréa de actualización de contenido. Con PHP .. el contenido lo podría actualizar tu usuario directamente sobre un "panel de administración" que le hagas ..donde con un formulario HTML y pco más actualizaría lo que necesite.
Con PHP (y en general con cualquier lenguaje del lado del servidor) puedes interactuar con Base de datos .. mandar un e-mail (sin pasar por el cliente de correo que pueda o no tener instalado tu visita a tu web ..).. Generar código HTML/javscript de forma dinámica .. con lo cual partes de código repetitivas podrías reutilizarlas ..
En fin .. con PHP vas a darle "dinamismo" a ese sitio .. En ningún momento vas a avandonar tu HTML/javascript que ya dominas. Con PHP sólo vas a "decidir" que HTML mostrar o no según tu programación en PHP y "formateando" los datos que obtengas de una BD .. un archivo de texto plano .. generados por el própio código u otros médios.
Salu2
[PHP]
lo que me imprime mi pagina al hacer esta llamada de la funcion
Código PHP:
BBCode(nl2br($fetch['text']));
es lo mismo que esta arriba que saque de la base de datos, es decir no me sustituye [ b ] [ /b ] por negritas y asi con todo. Que hay mal en todo esto?
Salu2

PD: He puesto ^ en las negritas para que FDW no me las formatee y entiendan lo que quiero decir