略微加速

PHP官方手册 - 互联网笔记

PHP - Manual: SplFileObject::ftruncate

2024-12-21

SplFileObject::ftruncate

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

SplFileObject::ftruncateTruncates the file to a given length

说明

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

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 noteadd 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.

官方地址:https://www.php.net/manual/en/splfileobject.ftruncate.php

北京半月雨文化科技有限公司.版权所有 京ICP备12026184号-3