SplFileObject::ftruncate

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

SplFileObject::ftruncate将文件截断到给定长度

说明

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

将文件截断到 size 字节。

参数

size

要截断到的尺寸。

注意:

如果 size 大于文件,则使用空字节进行扩展。

如果 size 小于文件,则额外数据将丢失。

返回值

成功时返回 true,失败时返回 false

范例

示例 #1 SplFileObject::ftruncate() 示例

<?php
// 创建包含 "Hello World!" 的文件
$file = new SplFileObject("/tmp/ftruncate", "w+");
$file->fwrite("Hello World!");

// 截断为 5 字节
$file->ftruncate(5);

// 回滚并读取数据
$file->rewind();
echo
$file->fgets();
?>

上面的例子将输出类似于

Hello

参见

添加注释

用户贡献的注释 1 个注释

irvinezega at hotmail dot com
5 年前
我想我们中相当多的人都知道这一点

但是,对于那些不知道的人来说:-

如果您要截断一个文件,例如,截断到 $fileObject->ftruncate(0),那么,最好先调用 $fileObject->fseek(0)(在您调用 '$fileObject->ftruncate' 之前)。

经过检查,我在文件开头遇到 'NULL' 字符。

因此,从我的推测来看;调用 'ftruncate()' 时,文件指针不会移动到文件开头(或者至少不会移动到所需位置)。

这个问题花了我不少时间才弄清楚,所以我希望它能帮到某人。
To Top