PHP | ftruncate 函数

Lasted 2021-01-18 18:43:57

ftruncate 函数将文件截断到给定的长度。

ftruncate() 函数接收两个参数。并将文件大小截取为 size。成功则返回 true。打开的文件需要有写权限,否则返回 false。

函数定义

ftruncate ( resource $handle , int $size ) : bool
// 源文件位于:ext/standard/file.c
# 函数定义

PHP_FUNCTION(ftruncate)
{
  ...
  if (size < 0) {
    zend_argument_value_error(2, "must be greater than or equal to 0");
    RETURN_THROWS();
  }

  PHP_STREAM_TO_ZVAL(stream, fp);

  if (!php_stream_truncate_supported(stream)) {
    php_error_docref(NULL, E_WARNING, "Can't truncate this stream!");
    RETURN_FALSE;
  }

  RETURN_BOOL(0 == php_stream_truncate_set_size(stream, size));
}

参数

  • checkhandle - 文件指针。
  • checksize - 截取的长度。

返回值

  • checkbool - 成功时返回 true, 或者在失败时返回 false。

示例1: - 使用 ftruncate() 函数截断文件到给定的长度。

<?php
/**
 * PHP ftruncate() 函数截断文件到给定的长度。
 *
 * @since Version 1.0.0
 * @filesource
 */

// 打开文件
$fileName = 'foo.txt';
$handle = fopen($fileName, 'r+');

// 截取到2个字符
$ret = ftruncate($handle, 3);

var_dump($ret);

// 关闭文件
fclose($handle);
bool(true)

如果文本中包含中文,可能出现乱码。