PHP 8.1.0 RC 2 available for testing

SplFileObject::ftruncate

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

SplFileObject::ftruncateCoupe le fichier à une longueur donnée

Description

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

Coupe le fichier à une longueur de size octets.

Liste de paramètres

size

La taille à couper.

Note:

Si size est plus grand que le fichier, la portion récupérée sera complétée par des octets vides.

Si size est plus petit que le fichier, le reste du fichier sera perdu.

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Exemples

Exemple #1 Exemple avec SplFileObject::ftruncate()

<?php
// Crée un fichier contenant "Hello World!"
$file = new SplFileObject("/tmp/ftruncate""w+");
$file->fwrite("Hello World!");

// Coupe 5 octets
$file->ftruncate(5);

// Réinitialise et lit les données
$file->rewind();
echo 
$file->fgets();
?>

Résultat de l'exemple ci-dessus est similaire à :

Hello

Voir aussi

add a note add a note

User Contributed Notes 1 note

up
1
irvinezega at hotmail dot com
3 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