CakeFest 2024: The Official CakePHP Conference

SplFileObject::ftruncate

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

SplFileObject::ftruncateTrunca o arquivo para um determinado comprimento

Descrição

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

Trunca o arquivo para size bytes.

Parâmetros

size

O tamanho para o qual truncar.

Nota:

Se size for maior que o arquivo, ele será estendido com bytes nulos.

Se size for menor que o arquivo, os dados extras serão perdidos.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Exemplo de SplFileObject::ftruncate()

<?php
// Cria arquivo contendo "Hello World!"
$file = new SplFileObject("/tmp/ftruncate", "w+");
$file->fwrite("Hello World!");

// Trunca para 5 bytes
$file->ftruncate(5);

// Rebobina e lê os dados
$file->rewind();
echo
$file->fgets();
?>

O exemplo acima produzirá algo semelhante a:

Hello

Veja Também

  • ftruncate() - Trunca um arquivo a um tamanho especificado

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