11<?xml version =" 1.0" encoding =" utf-8" ?>
2- <!-- EN-Revision: 3f1dbc451b313fb1ec8058f24c1beccf55fce316 Maintainer: PhilDaiguille Status: ready -->
2+ <!-- EN-Revision: 82b5e0afeb38142e91fbba05f06b46c3129420ba Maintainer: PhilDaiguille Status: ready -->
33<!-- Reviewed: no Maintainer: Marqitos -->
44<appendix xml : id =" filters" xmlns =" http://docbook.org/ns/docbook" xmlns : xlink =" http://www.w3.org/1999/xlink" >
55 <title >Lista de filtros estándar</title >
5454<?php
5555$fp = fopen('php://output', 'w');
5656stream_filter_append($fp, 'string.rot13');
57- fwrite($fp, "Ceci est un test .\n");
58- /* muestra : Prpv rfg ha grfg . */
57+ fwrite($fp, "Esto es una prueba .\n");
58+ /* Muestra : Rfgb rf han cehron . */
5959?>
6060]]>
6161 </programlisting >
@@ -75,8 +75,8 @@ fwrite($fp, "Ceci est un test.\n");
7575<?php
7676$fp = fopen('php://output', 'w');
7777stream_filter_append($fp, 'string.toupper');
78- fwrite($fp, "Ceci est un test .\n");
79- /* muestra : CECI EST UN TEST . */
78+ fwrite($fp, "Esto es una prueba .\n");
79+ /* Muestra : ESTO ES UNA PRUEBA . */
8080?>
8181]]>
8282 </programlisting >
@@ -96,8 +96,8 @@ fwrite($fp, "Ceci est un test.\n");
9696<?php
9797$fp = fopen('php://output', 'w');
9898stream_filter_append($fp, 'string.tolower');
99- fwrite($fp, "Ceci est un test .\n");
100- /* muestra : ceci est un test . */
99+ fwrite($fp, "Esto es una prueba .\n");
100+ /* Muestra : esto es una prueba . */
101101?>
102102]]>
103103 </programlisting >
@@ -121,16 +121,16 @@ fwrite($fp, "Ceci est un test.\n");
121121<![CDATA[
122122<?php
123123$fp = fopen('php://output', 'w');
124- stream_filter_append($fp, 'string.strip_tags', STREAM_FILTER_WRITE, "<strong><em><span >");
125- fwrite($fp, "<strong>Ce texte en gras</strong> finit par être agrandi <h1>en un titre 1</h1>\n");
124+ stream_filter_append($fp, 'string.strip_tags', STREAM_FILTER_WRITE, "<b><i><u >");
125+ fwrite($fp, "<b>texto en negrita</b> ampliado a un <h1>encabezado de nivel 1</h1>\n");
126126fclose($fp);
127- /* muestra : Ce texte en gras finit par être agrandi en un titre 1 */
127+ /* Muestra : texto en negrita ampliado a un encabezado de nivel 1 */
128128
129129$fp = fopen('php://output', 'w');
130- stream_filter_append($fp, 'string.strip_tags', STREAM_FILTER_WRITE, array('strong ','em ','span '));
131- fwrite($fp, "<strong>Ce texte en gras</strong> finit par être agrandi <h1>en un titre 1</h1>\n");
130+ stream_filter_append($fp, 'string.strip_tags', STREAM_FILTER_WRITE, array('b ','i ','u '));
131+ fwrite($fp, "<b>texto en negrita</b> ampliado a un <h1>encabezado de nivel 1</h1>\n");
132132fclose($fp);
133- /* muestra : Ce texte en gras finit par être agrandi en un titre 1 */
133+ /* Muestra : texto en negrita ampliado a un encabezado de nivel 1 */
134134?>
135135]]>
136136 </programlisting >
@@ -174,22 +174,22 @@ $fp = fopen('php://output', 'w');
174174stream_filter_append($fp, 'convert.base64-encode');
175175fwrite($fp, "This is a test.\n");
176176fclose($fp);
177- /* muestra : VGhpcyBpcyBhIHRlc3QuCg== */
177+ /* Muestra : VGhpcyBpcyBhIHRlc3QuCg== */
178178
179179$param = array('line-length' => 8, 'line-break-chars' => "\r\n");
180180$fp = fopen('php://output', 'w');
181181stream_filter_append($fp, 'convert.base64-encode', STREAM_FILTER_WRITE, $param);
182182fwrite($fp, "This is a test.\n");
183183fclose($fp);
184- /* muestra : VGhpcyBp
185- : cyBhIHRl
186- : c3QuCg== */
184+ /* Muestra : VGhpcyBp
185+ : cyBhIHRl
186+ : c3QuCg== */
187187
188188$fp = fopen('php://output', 'w');
189189stream_filter_append($fp, 'convert.base64-decode');
190190fwrite($fp, "VGhpcyBpcyBhIHRlc3QuCg==");
191191fclose($fp);
192- /* muestra : This is a test. */
192+ /* Muestra : This is a test. */
193193?>
194194]]>
195195 </programlisting >
@@ -223,7 +223,7 @@ fclose($fp);
223223$fp = fopen('php://output', 'w');
224224stream_filter_append($fp, 'convert.quoted-printable-encode');
225225fwrite($fp, "This is a test.\n");
226- /* muestra : =This is a test.=0A */
226+ /* Muestra : =This is a test.=0A */
227227?>
228228]]>
229229 </programlisting >
@@ -282,7 +282,7 @@ fclose($fp);
282282
283283 <section xml : id =" filters.compression.zlib" >
284284 <title >zlib.deflate y zlib.inflate</title >
285- <simpara >
285+ <para >
286286 <literal >zlib.deflate</literal > (compresión) y
287287 <literal >zlib.inflate</literal > (descompresión) son las implementaciones
288288 de los métodos de compresión presentados en la
@@ -296,18 +296,135 @@ fclose($fp);
296296 0, que representa la ausencia de compresión, y -1, que representa el nivel por defecto de zlib:
297297 actualmente, 6.
298298
299- <parameter >window</parameter > es el tamaño del buffer de memoria, en base 2.
300- Los valores superiores, hasta 15, es decir, 32768 bytes, dan mejores
301- compresiones, y los valores inferiores, hasta 9, es decir, 512 bytes,
302- ocupan menos espacio en memoria. Por defecto,
299+ <parameter >window</parameter > es el logaritmo en base 2 del tamaño de la
300+ ventana de compresión. Los valores superiores, hasta 15, es decir, 32768 bytes,
301+ dan una mejor compresión a costa de más memoria, y los valores inferiores,
302+ hasta 9, es decir, 512 bytes, dan una compresión menor ocupando menos
303+ espacio en memoria. Por defecto,
303304 <parameter >window</parameter > vale actualmente <literal >15</literal >.
304305
305- <parameter >memory</parameter > es una indicación del nivel de memoria
306- necesario.
306+ El filtro <literal >zlib.deflate</literal > implementa los métodos de
307+ compresión <literal >DEFLATE</literal >, <literal >ZLIB</literal > y
308+ <literal >GZIP</literal > según el valor del parámetro
309+ <parameter >window</parameter >.
310+
311+ Los 4 bits inferiores del parámetro window fijan el tamaño del
312+ «búfer de historial» interno utilizado, siendo el logaritmo en base 2 de su
313+ tamaño, en un rango de 8 a 15. El significado de los demás bits del
314+ parámetro window puede fijarse como se describe a continuación.
315+
316+ <itemizedlist >
317+ <listitem >
318+ <simpara >
319+ <literal >DEFLATE</literal > (<link xlink : href =" &url.rfc; 1951" >RFC 1951</link >)
320+ es un algoritmo de compresión sin tratar, sin encabezado ni suma de
321+ verificación. Se aplica cuando el parámetro window se fija en el rango
322+ de -9 a -15. Este algoritmo de compresión es la base de todos los
323+ formatos generados por el filtro <literal >zlib.deflate</literal >.
324+ Las funciones correspondientes que operan directamente sobre strings son
325+ <function >gzdeflate</function > y <function >gzinflate</function >.
326+ </simpara >
327+ </listitem >
328+
329+ <listitem >
330+ <simpara >
331+ <literal >ZLIB</literal > (<link xlink : href =" &url.rfc; 1950" >RFC 1950</link >)
332+ aplica el algoritmo <literal >DEFLATE</literal > y añade un encabezado de
333+ 2 bytes y un tráiler de 4 bytes que contiene la suma de verificación
334+ Adler32 de los datos sin comprimir, en orden de bytes big-endian:
335+ <literal ><![CDATA[ ZLIB = ZLIBHEADER(2B) DEFLATE ADLER32(4B)]]> </literal >
336+
337+ El encabezado de 2 bytes, leído como un número de 16 bits sin signo en
338+ orden big-endian, debe ser múltiplo de 31.
339+ Este formato se genera cuando el parámetro window se fija en el rango
340+ de 8 a 15.
341+ Las funciones correspondientes que operan directamente sobre strings son
342+ <function >gzcompress</function > y <function >gzuncompress</function >.
343+ </simpara >
344+ </listitem >
345+
346+ <listitem >
347+ <simpara >
348+ <literal >GZIP</literal > (<link xlink : href =" &url.rfc; 1952" >RFC 1952</link >)
349+ aplica el algoritmo <literal >DEFLATE</literal > añadiendo un encabezado y
350+ un tráiler con la suma de verificación <literal >CRC32</literal > de los
351+ datos sin comprimir y su longitud, ambos en orden de bytes little-endian:
352+ <literal ><![CDATA[ GZIP = GZIPHEADER(10B) DEFLATE CRC32(4B) LENGTH(4B)]]> </literal >
353+
354+ Es el formato de los ficheros <literal >.gz</literal >, en el que
355+ <literal >GZIPHEADER</literal > contiene, en este orden, la firma
356+ <literal >GZIP</literal > (<literal >\x1f\x8B</literal >), el método de
357+ compresión (<literal >\x08</literal >), un byte de flags a cero, una fecha
358+ de modificación a cero en 4 bytes, un byte de flags adicionales que
359+ depende del nivel de compresión, y el sistema operativo fijado al sistema
360+ actual (<literal >\x00</literal > = sistema de ficheros FAT,
361+ <literal >\x03</literal > = Unix, etc.).
362+ Este formato se genera cuando el parámetro window se fija en el rango
363+ de 9+16=25 a 15+16=31. Tenga en cuenta que existe un límite de 4GB para
364+ la longitud máxima de los datos sin comprimir; más allá de este límite,
365+ solo se almacena el módulo 2^32 de la longitud real en la parte
366+ <literal >LENGTH</literal >.
367+ Las funciones correspondientes que operan directamente sobre strings son
368+ <function >gzencode</function > y <function >gzdecode</function >; la
369+ función <function >gzopen</function > permite leer y escribir ficheros
370+ <literal >.gz</literal >.
371+ </simpara >
372+ </listitem >
373+ </itemizedlist >
374+
375+ Con el filtro <literal >zlib.inflate</literal >, solo se admite el parámetro
376+ <parameter >window</parameter >; cualquier otro parámetro
377+ (<parameter >memory</parameter >, <parameter >level</parameter >) se ignora.
378+ Sea $W el logaritmo en base 2 del tamaño del búfer de historial, de modo
379+ que el descompresor asigna 2^$W bytes. Para el formato ZLIB, este valor
380+ debe ser mayor o igual al registrado en el encabezado, lo cual se
381+ comprueba durante la descompresión; para los demás formatos, basta con
382+ que sea lo suficientemente grande para las distancias de coincidencia
383+ realmente presentes en los datos.
384+ El rango es 9 ≤ $W ≤ 15. Si se desconoce, $W=15 es la opción más segura.
385+
386+ <itemizedlist >
387+ <listitem >
388+ <simpara >
389+ <literal >DEFLATE</literal > (<link xlink : href =" &url.rfc; 1951" >RFC 1951</link >):
390+ utilice window=-$W, siendo $W un valor no inferior al utilizado para
391+ la compresión. Si se desconoce, fije window=-15.
392+ </simpara >
393+ </listitem >
394+
395+ <listitem >
396+ <simpara >
397+ <literal >ZLIB</literal > (<link xlink : href =" &url.rfc; 1950" >RFC 1950</link >):
398+ utilice window=$W. El valor de $W puede obtenerse del propio encabezado
399+ ZLIB; en caso contrario, fije window=15.
400+ </simpara >
401+ </listitem >
402+
403+ <listitem >
404+ <simpara >
405+ <literal >GZIP</literal > (<link xlink : href =" &url.rfc; 1952" >RFC 1952</link >):
406+ utilice window=$W+16. Un encabezado GZIP no contiene el tamaño de la
407+ ventana, por lo que debe fijarse window=31, salvo que se conozca el valor
408+ utilizado para la compresión.
409+ </simpara >
410+ </listitem >
411+
412+ <listitem >
413+ <simpara >
414+ <literal >ZLIB o GZIP</literal >:
415+ utilice window=$W+32 para la detección automática del encabezado, de
416+ modo que ambos formatos puedan reconocerse y descomprimirse;
417+ window=15+32=47 es la opción más segura.
418+ </simpara >
419+ </listitem >
420+ </itemizedlist >
421+
422+ <parameter >memory</parameter > es una escala que indica cuánta memoria de
423+ trabajo debe asignarse.
307424 Los valores válidos van de 1, para la asignación mínima, a 9, para una
308- asignación máxima. La asignación de memoria afecta la velocidad de ejecución,
309- y no el coste global .
310- </simpara >
425+ asignación máxima. La asignación de memoria afecta únicamente a la velocidad
426+ de ejecución y no influye en el tamaño de los datos generados .
427+ </para >
311428
312429 <note >
313430 <simpara >
@@ -332,23 +449,23 @@ fclose($fp);
332449$params = array('level' => 6, 'window' => 15, 'memory' => 9);
333450
334451$original_text = "This is a test.\nThis is only a test.\nThis is not an important string.\n";
335- echo "El texto original es largo de " . strlen($original_text) . " bytes .\n";
452+ echo "El texto original tiene " . strlen($original_text) . " caracteres .\n";
336453
337454$fp = fopen('test.deflated', 'w');
338455stream_filter_append($fp, 'zlib.deflate', STREAM_FILTER_WRITE, $params);
339456fwrite($fp, $original_text);
340457fclose($fp);
341458
342- echo "El fichero comprimido hace " . filesize('test.deflated') . " bytes de largo .\n";
343- echo "El texto original era :\n";
459+ echo "El fichero comprimido tiene " . filesize('test.deflated') . " bytes.\n";
460+ echo "El texto original era:\n";
344461/* Utiliza readfile y zlib.inflate para descomprimir al vuelo */
345462readfile('php://filter/zlib.inflate/resource=test.deflated');
346463
347- /* Muestra :
464+ /* Muestra:
348465
349- El texto original es largo de 70 bytes
350- El fichero comprimido hace 56 bytes de largo .
351- El texto original era :
466+ El texto original tiene 70 caracteres.
467+ El fichero comprimido tiene 56 bytes.
468+ El texto original era:
352469This is a test.
353470This is only a test.
354471This is not an important string.
@@ -367,20 +484,20 @@ This is not an important string.
367484<![CDATA[
368485<?php
369486$original_text = "This is a test.\nThis is only a test.\nThis is not an important string.\n";
370- echo "El texto original es largo de " . strlen($original_text) . " bytes .\n";
487+ echo "El texto original tiene " . strlen($original_text) . " caracteres .\n";
371488
372489$fp = fopen('test.deflated', 'w');
373490/* Aquí, "6" indica el nivel de compresión de 6 */
374491stream_filter_append($fp, 'zlib.deflate', STREAM_FILTER_WRITE, 6);
375492fwrite($fp, $original_text);
376493fclose($fp);
377494
378- echo "El fichero comprimido hace " . filesize('test.deflated') . " bytes de largo .\n";
495+ echo "El fichero comprimido tiene " . filesize('test.deflated') . " bytes.\n";
379496
380- /* Muestra :
497+ /* Muestra:
381498
382- El texto original es largo de 70 bytes
383- El fichero comprimido hace 56 bytes de largo .
499+ El texto original tiene 70 caracteres.
500+ El fichero comprimido tiene 56 bytes.
384501
385502 */
386503?>
@@ -404,7 +521,7 @@ El fichero comprimido hace 56 bytes de largo.
404521
405522 <parameter >work</parameter > es también un &integer; cuyo valor va de
406523 0 a 250, e indica el nivel de esfuerzo proporcionado con un método de
407- compresión antes de pasar a otro método, más lento. Modificar este
524+ compresión antes de pasar a otro método, más lento pero más fiable . Modificar este
408525 parámetro solo tiene efecto en la velocidad de compresión. La ganancia de espacio
409526 o la memoria utilizada permanecen iguales. Un nivel de 0 indica que la
410527 biblioteca debe utilizar su configuración por defecto.
@@ -432,19 +549,19 @@ El fichero comprimido hace 56 bytes de largo.
432549<?php
433550$param = array('blocks' => 9, 'work' => 0);
434551
435- echo "El fichero original hace " . strlen( LICENSE) . " bytes de largo .\n";
552+ echo "El fichero original tiene " . filesize(' LICENSE' ) . " bytes.\n";
436553
437554$fp = fopen('LICENSE.compressed', 'w');
438555stream_filter_append($fp, 'bzip2.compress', STREAM_FILTER_WRITE, $param);
439556fwrite($fp, file_get_contents('LICENSE'));
440557fclose($fp);
441558
442- echo "El fichero comprimido hace " . filesize('LICENSE.compressed') . " bytes de largo .\n";
559+ echo "El fichero comprimido tiene " . filesize('LICENSE.compressed') . " bytes.\n";
443560
444- /* Muestra :
561+ /* Muestra:
445562
446- El fichero original hace 3288 bytes de largo .
447- El fichero comprimido hace 1488 bytes de largo .
563+ El fichero original tiene 3288 bytes.
564+ El fichero comprimido tiene 1488 bytes.
448565
449566 */
450567?>
@@ -484,8 +601,8 @@ El fichero comprimido hace 1488 bytes de largo.
484601 <thead >
485602 <row >
486603 <entry >Parámetro</entry >
487- <entry >Obligatorio ?</entry >
488- <entry >Por omisión </entry >
604+ <entry >¿ Obligatorio?</entry >
605+ <entry >Por defecto </entry >
489606 <entry >Valores posibles</entry >
490607 </row >
491608 </thead >
@@ -500,13 +617,13 @@ El fichero comprimido hace 1488 bytes de largo.
500617 <entry >algorithms_dir</entry >
501618 <entry >Opcional</entry >
502619 <entry >ini_get('mcrypt.algorithms_dir')</entry >
503- <entry >Ruta hacia los algoritmos de módulos </entry >
620+ <entry >Ubicación de los módulos de algoritmos </entry >
504621 </row >
505622 <row >
506623 <entry >modes_dir</entry >
507624 <entry >Opcional</entry >
508625 <entry >ini_get('mcrypt.modes_dir')</entry >
509- <entry >Ruta hacia los modos de módulos </entry >
626+ <entry >Ubicación de los módulos de modos </entry >
510627 </row >
511628 <row >
512629 <entry >iv</entry >
0 commit comments