<html>
<head>
<style>
body {
background-color: #ffffff;
font-family: sans-serif;
color: #000;
}
div.cabecera {
position: relative;
background-color: #ffaa44;
color:#44aaff;
text-align:left;
font-weight: bold;
font-size: 50px;
left: 0px;
top: 0px;
padding: 4px 0px 4px 0px;
margin-bottom: 4px;
}
div.titulo {
position: relative;
background-color: #ffaa44;
color: #000;
font-weight: bold;
padding: 4px 2em 4px 2em;
}
div.texto{
position: relative;
padding: 2em 2em 2em 2em;
}
a {
text-decoration: none;
color: #999999;
background-color: #ffffff;
font-weight: normal;
}
div.cabecera a {
text-decoration: none;
font-size: medium;
color: #999999;
background-color: #ffaa44;
font-weight: normal;
}
div.langs{
background-color: #ffaa44;
width: 100%;
text-align: right;
font-size: 12pt;
color: #000;
}
div.langs a{
text-decoration: none;
color: #999999;
background-color: #ffaa44;
font-weight: small;
font-size: 12pt;
}
div.pie {
text-decoration: none;
font-size: normal;
color: #345678;
background-color: #ffaa44;
font-weight: bold;
width: 100%;
text-align: center;
}
</style>
</head>
<body>
<div class="cabecera">
<div class="langs"><a href="docgl.html">gl</a> | <b>es</b> | <a href="docen.html">en</a></div>
<table><tr><td><big><big><b>Rar for PHP </b></big></big></td><td>
<a href="#intro">Introducción</a> |
<a href="#install">Instalación</a> |
<a href="#config">Configuración</a> |
<a href="#fconf">Funciones de configuración</a> |
<a href="#fcomp">Funciones de compresión</a> |
<a href="#ej">Ejemplos</a></td></tr></table>
</div>
<div class="contenido">
<a name="intro"></a>
<div class="titulo">Introducción:</div>
<div class="texto">
<b>Rar for PHP</b> es un sencillo script que permite comprimir archivos y carpetas en formato <i>RAR</i>.<br/> RarLabs, propietaria del algoritmo de
compresión <i>RAR</i> no permite que otros programas, a parte de los suyos, puedan comprimir archivos en formato <i>RAR</i>.
<b>Rar for PHP</b>, cumpliendo con la licencia, no implementa el algoritmo de compresión <i>RAR</i>.<br/>
<b>Rar for PHP</b> es una interfaz para el programa <i>rar.exe</i>, cuyo propietario es RarLabs. Para poder comprimir archivos
<i>RAR</i> debereis tener este programa, el cual se encuentra en el directorio de instalación de WinRAR.
<br/>No he probado este algoritmo en Linux, pero si los parámetros de la interfaz en linea de comandos de linux son los mismos que en Windows, debería funcionar sin problemas.
</div>
<a name="install"></a>
<div class="titulo">Instalación:</div>
<div class="texto">
Para instalar <b>Rar for PHP</b> solo tienes que copiar el archivo <i>rar.php</i>
a tu directorio de ejecución de scripts php. Luego deberás editarlo para
poner los valores por defecto que desees.
</div>
<a name="config"></a>
<div class="titulo">Configuración:</div>
<div class="texto">
Las opciones de configuración de <b>Rar for PHP</b> son las siguientes:
<ul>
<li><b>$rar:</b> Debes indicar aqui la ubicación del archivo ejecutable de rar.</li>
<li><b>$rarpasswords:</b> Si desear guardar las contraseñas de los archivos que comprimas
puedes hacerlo indicando en esta variable la ruta del archivo en el que quieres almacenarlas.
Déjalo vacío para que no las guarde.
<li><b>$defaultCompression:</b> Debes indicar el nivel de compresión que tomará por defecto:
<ul>
<li>"NINGUNO" - Sin compresion </li>
<li>"BAJO" - Compresión baja </li>
<li>"MEDIO" - Compresión media </li>
<li>"NORMAL" - Compresión normal </li>
<li>"ALTO" - Compresión alta </li>
<li>"MAXIMO" - Compresión máxima </li>
</ul>
Ten en cuenta que a más compresión más tiempo tardará en comprimir.
</li>
<li><b>$mkSolid:</b> Si pones <i>true</i> se creará un archivo sólido. Esto es útil si tienes que
comprimir muchos archivo pequeños en 1 solo paquete, ya que el archivo será más pequeño.</li>
<li><b>$limitetiempo:</b> Indica el tiempo máximo que se ejecutará el script</li>
</ul>
</div>
<a name="fconf"></a>
<div class="titulo">Funciones de configuración:</div>
<div class="texto">
Con estas funciones puedes modificar la configuración para cada archivo que crees:
<ul>
<li><b>setPassword(txtContraseña):</b> Si quieres que un determinado archivo tenga una contraseña puedes llamar
a esta función antes de comprimir nada. Puedes pasarle como parámetro la contraseña que desees. Si
la llamas sin parámetros, se generará automáticamente una contraseña de entre 8 y 32 caracteres.</li>
<li><b>compression(txtNivelCompres, boolSolido): </b> Puedes ajustar el nivel de compresión del archivo que
quieres comprimir mediante esta función. El primer parámetro será el nivel de compresión deseado (ver Configuracion)
y el segundo parámetro indicará si quieres un archivo sólido o no (true o false).</li>
<li><b>getPassword():</b> Devuelve la contraseña actual usada para comprimir el archivo.</li>
<li><b>setRecovery(intRatio):</b> Permite añadir datos de recuperación al paquete. El parámetro <i>intRatio</i> es un valor entero representando
el tanto por ciento de datos de recuperación que se añadirán (1-10).</li>
</ul>
</div>
<a name="fcomp"></a>
<div class="titulo">Funciones de compresión:</div>
<div class="texto">
Estas funciones son las que se llaman para comprimir archivos o carpetas:
<ul>
<li><b>addfile(txtArchivo):</b> Añade al paquete el archivo cuya ruta está en el parámetro <i>txtArchivo</i></li>
<li><b>addfolder(txtCarpeta, boolRecursivo): </b> Añade al paquete la carpeta cuya ruta está en el parámetro <i>txtCarpeta</i>.
Por defecto comprime todos los archivos y carpetas que contiene <i>txtCarpeta</i>. Si no se desea que la compresión sea recursiva
se deberá indicar en el parámetro <i>boolRecursivo</i> "false". En caso contrario, indicar "true" o omitir el parámetro.</li>
<li><b>addList(arrayLista): </b> Añade al paquete la lista de archivos y carpetas especificadas en el parámetro <i>arrayLista</i>.
Este parámetro puede ser un array con la lista de archivos o una cadena de caracteres con la lista de archivos separadas por ";"</li>
</ul>
</div>
<a name="ej"></a>
<div class="titulo">Ejemplos:</div>
<div class="texto">
<ul>
<li><b>Básico:</b>Este ejemplo comprimirá como <i>"c:/archivo.rar"</i> el archivo <i>"c:/comprimir.txt"</i> con las opciones por defecto.<br/>
<br/>
<i>
require_once('rar.php');<br/>
$rar=new rar("c:/archivo.rar");<br/>
$rar->addfile("c:/comprimir.txt");<br/>
</i><br/>
</li>
<li><b>Con contraseña:</b> Se comprimirá la carpeta <i>"c:/carpeta"</i> como <i>"c:/archivo.rar"</i> con la contraseña <i>12345</i>.<br/>
<br/>
<i>
require_once('rar.php');<br/>
$rar=new rar("c:/archivo.rar");<br/>
$rar->setPassword("12345");<br/>
$rar->addfolder("c:/carpeta");<br/>
</i><br/>
</li>
<li><b>Complejo:</b> Se comprimirá la carpeta <i>"c:/carpeta"</i> y el archivo <i>"c:/comprimir.txt"</i> en el paquete <i>"c:/archivo.rar"</i> con contraseña aleatoria que luego se mostrará en el explorador.
Se creará un archivo rar solido con un nivel de compresión <i>Normal</i> y un registro de recuperació del 2% <br/>
<br/>
<i>
require_once('rar.php');<br/>
$rar=new rar("c:/archivo.rar");<br/>
$rar->setPassword();<br/>
$rar->compression("NORMAL",true);<br/>
$rar->setRecovery(2);<br/>
$rar->addList("c:\carpeta1; c:\carpeta2; c:\carpeta3\*.exe");<br/>
$rar->addfile("c:/comprimir.txt");<br/>
$rar->addfolder("c:/carpeta");<br/>
echo $rar->getPassword();
</i><br/><br/>
NOTA: Si este script fuera un sistema de copia de seguridad sencillo, la contraseña en vez de mostrarse se podría haber enviado al administrador mediante correo electrónico.
</li>
</ul>
</div>
</div>
<div class="pie">José Manuel Busto</div
</body>