CakeFest 2024: The Official CakePHP Conference

SplFileObject::ftruncate

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

SplFileObject::ftruncateTrunca el archivo a una longitud dada

Descripción

public SplFileObject::ftruncate(int $size): bool

Trunca el archivo a size bytes.

Parámetros

size

El tamaño a truncar.

Nota:

Si size es más grande que el fichero este es extendido con bytes null.

Si size es más pequeño que el archivo, los datos extra se perderán.

Valores devueltos

Devuelve true en caso de éxito o false en caso de error.

Ejemplos

Ejemplo #1 Ejemplo de SplFileObject::ftruncate()

<?php
// Crea un fichero conteniendo "Hola Mundo!"
$file = new SplFileObject("/tmp/ftruncate", "w+");
$file->fwrite("Hola Mundo!");

// Truncar a 4 bytes
$file->ftruncate(4);

// Rebobina y leer los datos
$file->rewind();
echo
$file->fgets();
?>

El resultado del ejemplo sería algo similar a:

Hola

Ver también

add a note

User Contributed Notes 1 note

up
7
irvinezega at hotmail dot com
5 years ago
I suppose a fair number of us know this:

However, for those who don't:-

If you are truncating a file, say, to $fileObject->ftruncate(0), then, it may be advisable to call $fileObject->fseek(0) first (before you call '$fileObject->ftruncate').

On inspection, I was encountering 'NULL' characters at the beginning of a, or the, file.

Hence, from what I have surmised; when 'ftruncate()' is called, the file pointer does NOT move to the beginning (or, at least, the required position) of the file.

This issue cost me a fair amount of time to figure out, so I hope it helps someone.
To Top