(no version information, might be only in CVS)
php_stream_make_seekable -- Convertir una secuencia a una secuencia
reubicable
Descripción
int
php_stream_make_seekable ( php_stream * secuencia_origen, php_stream ** secuencia_nueva, int banderas )
php_stream_make_seekable() chequea
si secuencia_origen es reubicable. Si no
lo es, copiará los datos en una nueva secuencia
temporal. Si tiene
éxito, secuencia_nueva es siempre
definida como la secuencia de uso válido, incluso cuando
la secuencia original era reubicable.
banderas le permite especificar sus
preferencias para la secuencia reubicable que es devuelta:
use PHP_STREAM_NO_PREFERENCE para usar la
secuencia reubicable predeterminada (que usa un búfer de
memoria expansible dinámicamente, pero cambia a un tipo de
almacenamiento respaldado en un archivo temporal cuando el
tamaño de la secuencia se hace más largo), o
use PHP_STREAM_PREFER_STDIO para indicar el
tipo de almacenamiento "regular", respaldado en un archivo
temporal.
Tabla 1. Valores de retorno
de php_stream_make_seekable()
Valor | Significado |
---|
PHP_STREAM_UNCHANGED | La secuencia original era reubicable en cualquier
caso. secuencia_nueva es definida al
valor de seuencia_original.
|
PHP_STREAM_RELEASED | La secuencia original no era reubicable y ha sido
liberada. secuencia_nueva es definida
como la nueva secuencia reubicable. Usted no debe usar
más valor
de secuencia_original.
|
PHP_STREAM_FAILED | Un error ocurrió mientras se intentaba la
conversión. secuencia_nueva
se define como
NULL; secuencia_original sigue
siendo válida.
|
PHP_STREAM_CRITICAL |
Un error ocurrión durante el intento de
conversión que ha dejado
a secuencia_original en un estado
indeterminado. secuencia_nueva se
define como NULL y es altamente recomendable que usted
cierre secuencia_original.
|
Nota:
Si necesita reubicar y escribir a la secuencia, no tiene sentido
que use esta función, ya que no se garantiza que la
secuencia que devuelve esté asociada con el mismo recurso
que la secuencia original.
Nota:
Si sólo necesita hacer búsquedas de
posición hacia adelante, no hay necesidad de llamar esta
función, ya que la API de secuencias emulará las
reubicaciones hacia adelante cuando el parámetro
a_partir_de es SEEK_CUR.
Nota:
Si secuencia_original es basada en red,
esta función creará un bloqueo hasta que los
contenidos completos hayan sido descargados.
Nota:
¡NUNCA llame esta función con
una secuencia_original que sea una
referencia por un apuntador de archivo en un script PHP!
¡Esta función puede causar que la secuencia interna
sea cerrada, cosa que causaría un fallo en el programa
cuando el script acceda nuevamente al apuntador de archivo!
Nota:
En muchos casos, esta función sólo puede tener
éxito cuando secuencia_original es
una secuencia abierta recientemente sin datos en búfer en
la capa de la secuencia. Por esa razón, y dado que es
difícial usar correctamente esta función, es
recomendable que
use php_stream_open_wrapper() y pase el valor
PHP_STREAM_MUST_SEEK en sus opciones en
lugar de llamar esta función directamente.