• 首页
  • vue
  • TypeScript
  • JavaScript
  • scss
  • css3
  • html5
  • php
  • MySQL
  • redis
  • jQuery
  • SplFileObject::ftruncate()

    (PHP 5 >= 5.1.0, PHP 7)

    Truncates the file to a given length

    说明

    publicSplFileObject::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
    

    参见

    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.