fseek

(PHP 4, PHP 5, PHP 7, PHP 8)

fseekModifica la posición del puntero de archivo

Descripción

fseek(resource $stream, int $offset, int $whence = SEEK_SET): int

Modifica el cursor de posición en el archivo stream. La nueva posición, medida en bytes, desde el inicio del archivo, se obtiene sumando la distancia offset a la posición whence.

En general, es posible desplazarse más allá del final del flujo (eof); si se escriben datos en este caso, el espacio entre el final del flujo y la posición actual será rellenado con bytes nulos. Sin embargo, algunos flujos no soportan este comportamiento, en particular cuando el espacio de almacenamiento subyacente es de tamaño fijo.

Parámetros

stream

Resource que apunta a un fichero del sitema que normalmente es creado usando fopen().

offset

La posición.

Para desplazarse a una posición antes del final del archivo, debe pasarse un valor negativo en el offset y el parámetro whence debe establecerse en SEEK_END.

whence

Los valores posibles para whence son :

  • SEEK_SET - Establecer la posición igual a offset bytes desde el inicio del archivo.
  • SEEK_CUR - Establecer la posición en el lugar actual más offset bytes.
  • SEEK_END - Establecer la posición al final del archivo más offset bytes.

Valores devueltos

En caso de éxito, devuelve 0; de lo contrario, devuelve -1.

Advertencia

Esta función ha sido creada para imitar la función del mismo nombre en lenguaje C. Tenga en cuenta los valores de retorno, ya que difieren de lo que podría esperarse en PHP.

Ejemplos

Ejemplo #1 Ejemplo con fseek()

<?php

$fp
= fopen('somefile.txt', 'r');

// lee algunos datos
$data = fgets($fp, 4096);

// vuelve al inicio del archivo
// equivalente a rewind($fp);
fseek($fp, 0);

?>

Notas

Nota:

Si abre el archivo con el modo a o a+, todos los datos que escriba en el archivo siempre serán añadidos, sin importar la posición en el archivo.

Nota:

No todos los flujos soportan el desplazamiento. Para aquellos que no lo soportan, el desplazamiento hacia adelante se realizará leyendo y liberando los bytes; otras formas de desplazamiento fallarán.

Ver también

  • ftell() - Devuelve la posición actual del puntero de archivo
  • rewind() - Rebobina la posición de un puntero a un archivo