SplFileObject::ftruncate()
(PHP 5 >= 5.1.0, PHP 7)
Truncates the file to a given length
说明
public SplFileObject::ftruncate(int $size): bool
Truncates the file to$sizebytes.
参数
- $size
The size to truncate to.
Note:
If$sizeis larger than the file it is extended with null bytes.
If$sizeis smaller than the file, the extra data will be lost.
返回值
成功时返回TRUE
,或者在失败时返回FALSE
。
范例
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
参见
ftruncate()
将文件截断到给定的长度
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.