<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>El descanso del Guerrero &#187; Ejemplo</title>
	<atom:link href="http://www.atlantiscode.com/blog/category/ejemplo/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.atlantiscode.com/blog</link>
	<description>Donde reposan las almas cansadas</description>
	<lastBuildDate>Tue, 27 Apr 2010 22:00:17 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Script para renombrar ficheros (PHP)</title>
		<link>http://www.atlantiscode.com/blog/script-para-renombrar-ficheros-php/</link>
		<comments>http://www.atlantiscode.com/blog/script-para-renombrar-ficheros-php/#comments</comments>
		<pubDate>Tue, 11 Nov 2008 18:02:37 +0000</pubDate>
		<dc:creator>Sonycrow</dc:creator>
				<category><![CDATA[Código]]></category>
		<category><![CDATA[Ejemplo]]></category>
		<category><![CDATA[Php]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[Scripts]]></category>

		<guid isPermaLink="false">http://www.atlantiscode.com/blog/script-para-renombrar-ficheros-php/</guid>
		<description><![CDATA[Pues bueno, yo bajo bastante anime, series, etc&#8230; y no me gusta tener nombres asquerosos en los ficheros. Debido a esto he tenido que idear un scriptillo para renombrar ficheros en PHP.
Se basa en una expresión regular para encontrar el número del capítulo en cuestión, y a partir de ahí generar un nombre nuevo, limpio [...]]]></description>
			<content:encoded><![CDATA[<p>Pues bueno, yo bajo bastante anime, series, etc&#8230; y no me gusta tener nombres asquerosos en los ficheros. Debido a esto he tenido que idear un scriptillo para renombrar ficheros en PHP.</p>
<p>Se basa en una expresión regular para encontrar el número del capítulo en cuestión, y a partir de ahí generar un nombre nuevo, limpio y bonito :)</p>
<p>En este ejemplo, se han usado las dos temporadas de Code Geass, donde los ficheros se llamaban &#8220;Code_Geass_.1.by_anime_(x-264).mp4&#8243; (vamos, feo de narices) xD</p>
<p><span id="more-93"></span></p>
<blockquote><p>&lt;?php<br />
header(&#8220;Content-type: text/plain&#8221;);</p>
<p>/**<br />
* Parametros a definir:<br />
*<br />
* $dir       (Ruta de los ficheros)<br />
* $ereg      (Expresion regular para obtener el número del capítulo del nombre del archivo original)<br />
* $finalname (Nombre del archivo final, donde %EREG#X% es el resultado de la expresion regular)<br />
* $extension (Extension de los archivos a renombrar)<br />
* $numzeros  (Número de ceros a la izquierda para el número de capítulo (003 = 2))<br />
* $rename    (Si realmente queremos renombrarlos o solo hacer una simulacion)<br />
* $extra     (Array con por ejemplo los titulos de los capitulos para incluir con %EXTRA%)<br />
**/</p>
<p># Init<br />
$dir       = &#8220;/media/Almacen/Movies/Code Geass Lelouch of the Rebellion/&#8221;;<br />
$ereg      = &#8220;(R2)*\.([0-9]*)&#8221;; // (Ejemplo: nombre_del_capitulo_13.avi)<br />
$finalname = &#8220;Code Geass %EREG#1% %EREG#2% &#8211; %EXTRA%&#8221;;<br />
$extension = &#8220;mp4&#8243;;<br />
$numzeros  = 1;<br />
$rename    = false;<br />
$extra     =<br />
array(<br />
&#8220;El dia en que el diablo nacio&#8221;, &#8220;El despertar del caballero blanco&#8221;, &#8220;El falso compañero de clase&#8221;,<br />
&#8220;Mi nombre es Zero&#8221;, &#8220;La princesa y la bruja&#8221;, &#8220;La mascara robada&#8221;, &#8220;El ataque a cornelia&#8221;,<br />
&#8220;La orden de los caballeros negros&#8221;, &#8220;Refrain&#8221;, &#8220;La danza de Guren&#8221;, &#8220;La batalla de Narita&#8221;,<br />
&#8220;El mesaje de Kyoto&#8221;, &#8220;Shirley y el peligro inminente&#8221;, &#8220;Geass vs Geass&#8221;, &#8220;Los aplausos de Mao&#8221;,<br />
&#8220;Nanally capturada&#8221;, &#8220;Caballero&#8221;, &#8220;Una orden para Kururugi Suzaku&#8221;, &#8220;La isla de Dios&#8221;,<br />
&#8220;Guerra en Kyuushuu&#8221;, &#8220;El anuncio del festival escolar&#8221;, &#8220;Euphie manchada de sangre&#8221;,<br />
&#8220;Al menos con pena&#8221;, &#8220;La frase del colapso&#8221;, &#8220;Zero&#8221;,<br />
&#8220;El dia que el demonio desperto&#8221;, &#8220;El plan para liberar Japon&#8221;, &#8220;La prision en la academia&#8221;,<br />
&#8220;El contraataque del patibulo&#8221;, &#8220;Caballero de la Mesa Redonda&#8221;, &#8220;Ataque sorpresa en el Oceano Pacifico&#8221;,<br />
&#8220;La mascara abandonada&#8221;, &#8220;El milagro de millones&#8221;, &#8220;La novia del Zhu Jin Cheng&#8221;,<br />
&#8220;Cuando el Shen Hum resplandece&#8221;, &#8220;El poder de los sentimientos&#8221;, &#8220;Ataque de amor&#8221;,<br />
&#8220;Un asesino del pasado&#8221;, &#8220;La caceria de Geass&#8221;, &#8220;El mundo de C&#8221;,<br />
&#8220;La primera revolucion de la Unidad de Naciones&#8221;, &#8220;El sabor de la tierra&#8221;,<br />
&#8220;La segunda batalla decisiva de Tokio&#8221;, &#8220;Traicion&#8221;, &#8220;Inadecuado para ser emperador&#8221;,<br />
&#8220;La conexion Ragnarok&#8221;, &#8220;El emperador Lelouch&#8221;, &#8220;La mascara de Schneizel&#8221;,<br />
&#8220;Sky of Damocles&#8221;, &#8220;Re&#8221;<br />
);</p>
<p># Comienza el renombrado<br />
if ($gestor = opendir($dir))<br />
{<br />
# Obtenemos los ficheros y los metemos en un array<br />
while (false !== ($archivo = readdir($gestor)))<br />
{<br />
$allfiles[] = $archivo;<br />
}</p>
<p>closedir($gestor);<br />
}</p>
<p># Init de contador de ficheros<br />
$numFiles = 0;</p>
<p># Ordenamos el array de forma natural<br />
natsort($allfiles);</p>
<p># Recorremos los ficheros<br />
foreach ($allfiles as $archivo)<br />
{<br />
if ($archivo != &#8220;.&#8221; &amp;&amp; $archivo != &#8220;..&#8221; &amp;&amp; $archivo != &#8220;renamer.php&#8221;)<br />
{<br />
# Init<br />
$farchivo = null;</p>
<p># Obtenemos la extension<br />
$ext = strtolower(substr($archivo, strrpos($archivo, &#8220;.&#8221;)));</p>
<p>if ($extension &amp;&amp; substr($ext, 1) != $extension) continue;</p>
<p># Obtenemos la Expresion regular<br />
if (eregi($ereg, $archivo, $regs))<br />
{<br />
$farchivo = $finalname;</p>
<p># Obtenemos el nombre del fichero a cambiar<br />
for ($i = 1; $i &lt; count($regs); $i++)<br />
{<br />
if ($regs[$i])<br />
{<br />
if (is_numeric($regs[$i])) {<br />
$remplace = str_pad($regs[$i], $numzeros + 1, &#8220;0&#8243;, STR_PAD_LEFT);<br />
}<br />
else {<br />
$remplace = $regs[$i];<br />
}</p>
<p>$farchivo = str_replace(&#8220;%EREG#{$i}%&#8221;, $remplace, $farchivo);<br />
}<br />
}</p>
<p># Remplazamos el extra<br />
if (count($extra) &amp;&amp; $extra[$numFiles])<br />
{<br />
$farchivo = str_replace(&#8220;%EXTRA%&#8221;, $extra[$numFiles], $farchivo);<br />
}<br />
else<br />
{<br />
$farchivo = str_replace(&#8220;%EXTRA%&#8221;, &#8220;&#8221;, $farchivo);<br />
}</p>
<p># Eliminamos los %EREG#x% que quedan<br />
$farchivo = preg_replace(&#8220;/%EREG#[0-9]*%/i&#8221;, &#8220;&#8221;, $farchivo);</p>
<p># Eliminamos dobles espacios<br />
$farchivo = preg_replace(&#8220;/[ ]{2,99}/i&#8221;, &#8221; &#8220;, $farchivo);</p>
<p># Añadimos la extension<br />
$farchivo .= $ext;</p>
<p># Salida<br />
if ($farchivo)<br />
{<br />
echo &#8220;&gt;&gt; \&#8221;{$archivo}\&#8221; &lt;&lt;##&gt;&gt; \&#8221;{$farchivo}\&#8221;\n&#8221;;</p>
<p>if ($rename)<br />
{<br />
rename(&#8220;{$dir}{$archivo}&#8221;, &#8220;{$dir}{$farchivo}&#8221;);<br />
}<br />
}<br />
else<br />
{<br />
echo &#8220;** No se pudo cambiar el nombre de {$archivo}\n&#8221;;<br />
}</p>
<p>$numFiles++;<br />
}<br />
}<br />
}</p>
<p>?&gt;</p></blockquote>
<p>Espero que os sirva.</p>
<p>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.atlantiscode.com/blog/script-para-renombrar-ficheros-php/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Cifrado con Rijndael (AES) simétrico en PHP</title>
		<link>http://www.atlantiscode.com/blog/cifrado-con-rijndael-aes-simetrico-en-php/</link>
		<comments>http://www.atlantiscode.com/blog/cifrado-con-rijndael-aes-simetrico-en-php/#comments</comments>
		<pubDate>Mon, 22 Sep 2008 17:41:02 +0000</pubDate>
		<dc:creator>Sonycrow</dc:creator>
				<category><![CDATA[Código]]></category>
		<category><![CDATA[Ejemplo]]></category>
		<category><![CDATA[Php]]></category>

		<guid isPermaLink="false">http://www.atlantiscode.com/blog/cifrado-con-rijndael-aes-simetrico-en-php/</guid>
		<description><![CDATA[A continuación, un ejemplo funcional de un cifrado de datos simétrico usando Rijndael en su modo de 256bits.
&#60;?php
header(&#8220;Content-Type: text/plain; charset=utf-8&#8243;);
# Creamos una clave de 256bits o 32 caracteres
$key = md5(&#8220;Clave para el cifrado de datos `12345`!·$%&#38;/()=&#8221;);
# Cadena a encriptar
$data = &#8220;Estamos aquí reunidos para ver el funcionamiento de un cifrado simétrico. ALE!&#8221;;
/**
* PROCESO DE CIFRADO
**/
# [...]]]></description>
			<content:encoded><![CDATA[<p>A continuación, un ejemplo funcional de un cifrado de datos simétrico usando Rijndael en su modo de 256bits.</p>
<blockquote><p>&lt;?php<br />
header(&#8220;Content-Type: text/plain; charset=utf-8&#8243;);</p>
<p># Creamos una clave de 256bits o 32 caracteres<br />
$key = md5(&#8220;Clave para el cifrado de datos `12345`!·$%&amp;/()=&#8221;);</p>
<p># Cadena a encriptar<br />
$data = &#8220;Estamos aquí reunidos para ver el funcionamiento de un cifrado simétrico. ALE!&#8221;;</p>
<p>/**<br />
* PROCESO DE CIFRADO<br />
**/<br />
# Inicializa el mudulo de cifrado<br />
$td = mcrypt_module_open(&#8216;rijndael-256&#8242;, &#8221;, &#8216;ofb&#8217;, &#8221;);</p>
<p># Crea el vector de inicializacion y establece el tamaño de la clave (aleatorio)<br />
$vi = mcrypt_create_iv(mcrypt_enc_get_iv_size($td), MCRYPT_DEV_RANDOM);</p>
<p># Inicializa el cifrado<br />
mcrypt_generic_init($td, $key, $vi);</p>
<p># Cifra los datos<br />
$encryptedData = mcrypt_generic($td, $data);</p>
<p># Termina el manejador de cifrado y cierra el modulo<br />
mcrypt_generic_deinit($td);<br />
mcrypt_module_close($td);</p>
<p># Muestra el cifrado<br />
echo &#8220;Cifrado:\n{$encryptedData}\n\n&#8221;;</p>
<p>/**<br />
* PROCESO DE DESCIFRADO<br />
**/<br />
# Inicializa el mudulo de cifrado<br />
$td = mcrypt_module_open(&#8216;rijndael-256&#8242;, &#8221;, &#8216;ofb&#8217;, &#8221;);</p>
<p># Inicializa el cifrado<br />
mcrypt_generic_init($td, $key, $vi);</p>
<p># Crea el vector de inicializacion y establece el tamaño de la clave (aleatorio)<br />
$vi = mcrypt_create_iv(mcrypt_enc_get_iv_size($td), MCRYPT_DEV_RANDOM);</p>
<p># Descifra los datos<br />
$decryptedData = mdecrypt_generic($td, $encryptedData);</p>
<p># Termina el manejador de descifrado y cierra el modulo<br />
mcrypt_generic_deinit($td);<br />
mcrypt_module_close($td);</p>
<p># Muestra el descifrado<br />
echo &#8220;Descifrado:\n{$decryptedData}\n\n&#8221;;<br />
?&gt;</p></blockquote>
<p>Aquí se ha utilizado una clave de longitud fija de 32 caracteres, pero hay muchas más variantes y posibilidades. Desde utilizar una longitud aleatoria hasta tener 2 claves y un sin fin de opciones más. Podemos complicarlo lo que queramos, contra más complicado más difícil será reventarlo (aunque todavía no se conoce el método).</p>
<p>Ale!!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.atlantiscode.com/blog/cifrado-con-rijndael-aes-simetrico-en-php/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
