PHP | fseek 函數
怎樣移動文件的指針
最近更新時間 2021-01-18 17:48:52
fseek 函數移動文件指針。
fseek() 函數有兩個必填參數和一個選填參數。其中第二個參數表示需要移動的字節數。移動的方式由第三個參數決定,默認為文件起始位置。
函數定義
fseek ( resource $handle , int $offset , int $whence = SEEK_SET ) : int
// 源文件位於:ext/standard/file.c
# 函數定義
PHPAPI PHP_FUNCTION(fseek)
{
zval *res;
zend_long offset, whence = SEEK_SET;
php_stream *stream;
ZEND_PARSE_PARAMETERS_START(2, 3)
Z_PARAM_RESOURCE(res)
Z_PARAM_LONG(offset)
Z_PARAM_OPTIONAL
Z_PARAM_LONG(whence)
ZEND_PARSE_PARAMETERS_END();
PHP_STREAM_TO_ZVAL(stream, res);
RETURN_LONG(php_stream_seek(stream, offset, (int) whence));
}
參數
- checkhandle - 文件指針。
- checkoffset - 移動的字節數。要移動到文件尾之前的位置,需要給 offset 傳遞一個負值,並設置 whence 為 SEEK_END。
- checkwhence - 移動的方式。
- SEEK_SET 從文件的起始位置,設定位置等於 offset 字節。
- SEEK_CUR 設定位置為當前位置加上 offset。
- SEEK_END 設定位置為文件尾加上 offset。
返回值
- checkint - 成功則返回 0;否則返回 -1。注意移動到 EOF 之後的位置不算錯誤。
示例1: - 使用 fseek() 函數移動文件指針位置。
<?php
/**
* PHP fseek() 函數移動文件指針位置。
*
* @since Version 1.0.0
* @filesource
*/
// 打開文件
$fileName = 'foo.txt';
$handle = fopen($fileName, 'r');
// 讀取文件
$data = fgets($handle, 1024);
// 移動指針到文件開頭
// 功能跟 rewind($handle); 一樣
fseek($handle, 0);
// 關閉文件
fclose($handle);