jueves, agosto 24, 2006

[Script PHP] Converter BBCODE/HTML

Hace un par de días me canse XD de estar editando los pequeños howtos, que aconstumbro escribirlos con todo y etiquetas BBCODE para los foros xD..

Así que me di la tarea de escribir un script que me ayudara o cuando menos minimizara esta tarea un poco. Y aquí esta (tiene detallitos, pero ya menciones cuál era mi objetivo =):



<html>
<head><title>Convert HTML/BBCODE</title></head>
<body>
<?php
if (!empty($HTTP_POST_FILES["archivo"]["tmp_name"]) && !empty($_POST['opc']) ){
if ( $HTTP_POST_FILES['archivo']['size'] <= 100000){
$archivo_name=$HTTP_POST_FILES['archivo']['name'];
$dirTmp=$HTTP_POST_FILES['archivo']['tmp_name'];
$extensiones = explode(".",$archivo_name);
$e = count($extensiones)-1;
if($extensiones[$e] == "txt"){
$opc=$_POST['opc'];
$etiquetas = array
("html" => array( "<span style='font-weight:bold;'>","</span>","<pre><nowiki>",
"</pre></nowiki>","<span style='font-style:italic;'>","</span>",
"<span style='font-size:18px;'>","</span>","<a href=","</a>",
"<img src="," />","<blockquote>","</blockquote>",
"<span style='font-size:16px;'>","</span>"),
"bbcode" => array("[b]","[/b]","[code]","[/code]","[i]","[/i]","[size=18]","[/size]",
"[URL=","[/URL]","[IMG]","[/IMG]","[quote]","[/quote]","[size=16]","[/size]"));
$open=fopen($dirTmp,"r");
$text=fread($open,filesize($dirTmp));
$texto=$text;
for( $x=0; $x<=count($etiquetas["html"]); $x++){
if ($opc == 2)
$text=str_ireplace($etiquetas["bbcode"][$x],$etiquetas["html"][$x],$text);
if ($opc == 1)
$text=str_ireplace($etiquetas["html"][$x],$etiquetas["bbcode"][$x],$text);
}

fclose($open);
?>
<form>
<a href="<?php $PHP_SELF ?>">Regresar</a>
<br><b>Texto Original</b><br>
<textarea name=texto rows=21 cols=100><?php echo $texto ?></textarea>
<br><br>
<b>Texto Modificado</b><br>
<textarea name=texto rows=21 cols=100><?php echo $text ?></textarea>
</form>
<?php
}else{
echo "Sólo se permiten archivos con extensión .txt" ;
echo "<br><a href='$PHP_SELF'>Regresar</a>";
}
}else{
echo "El archivo debe ser menor de 100 Kb" ;
echo "<br><a href='$PHP_SELF'>Regresar</a>";
}
}else{
?>
<FORM METHOD="POST" ACTION="<?php $PHP_SELF ?>" ENCTYPE="multipart/form-data">
<INPUT TYPE="file" NAME="archivo">
<INPUT TYPE="submit" NAME="enviar" VALUE="Enviar">
<br><br><b>Convertir a:</b>
BBCODE: <input type="radio" name="opc" value="1">
HTML: <input type="radio" name="opc" value="2">
<br><br><b>Asegurate que eligas la ruta del archivo y la opción correcta</b>
</FORM>
<?
}
?>
</body>
</html>
Para poder probarlo localmente (que es como lo utilizo) hay que modificar la configuración de PHP en el archivo php.ini de la siguiente manera y agregar los permisos correspondientes. Todo esto para poder subir archivos a un servidor:

Archivo: /etc/php/apache2-php5/php.ini
;;;;;;;;;;;;;;;;
; File Uploads ;
;;;;;;;;;;;;;;;;

; Whether to allow HTTP file uploads.
file_uploads = On

; Temporary directory for HTTP uploaded files (will use system default if not
; specified).
upload_tmp_dir = /tmp

; Maximum allowed size for uploaded files.
upload_max_filesize = 2M

Asignando permisos al directorio temporal para subir achivos:

##Permisos a /tmp para el usuario y grupo apache

# chown apache:apache /tmp

Saludos!!

1 comentario:

Anónimo dijo...

=o
deberias hacerlo en algun .exe o en java =o
asi no habria necesidad de subirlo a una web =(
y podria usarlo y distribuirlo y juntar pa la casa XD
ya ps :P
te salvaste 15 dias con esto u.u
=****
gracias por lo que dijiste hoy =)