SplFileObject::ftruncate

(PHP 5 >= 5.1.0)

SplFileObject::ftruncateTruncates the file to a given length

Опис

public bool SplFileObject::ftruncate ( int $size )

Truncates the file to size bytes.

Параметри

size

The size to truncate to.

Зауваження:

If size is larger than the file it is extended with null bytes.

If size is smaller than the file, the extra data will be lost.

Значення, що повертаються

Повертає TRUE в успішному випадку або FALSE в разі помилки.

Приклади

Приклад #1 SplFileObject::ftruncate() example

<?php
// Create file containing "Hello World!"
$file = new SplFileObject("/tmp/ftruncate""w+");
$file->fwrite("Hello World!");

// Truncate to 5 bytes
$file->ftruncate(5);

// Rewind and read data
$file->rewind();
echo 
$file->fgets();
?>

Наведений вище приклад виведе щось подібне до:

Hello

Прогляньте Також

add a note add a note

User Contributed Notes 1 note

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