PHP 文件系统 ftell() 函数



PHP 文件系统ftell()函数用于返回打开文件中当前的位置,这意味着它在文件流中的偏移量。它可以在成功时返回当前文件指针位置,或者在失败时返回 false。

语法

以下是 PHP 文件系统ftell()函数的语法:

int ftell ( resource $handle )

参数

使用ftell()函数所需的的参数如下所述:

序号 参数及描述
1

handle(必填)

指向打开文件的的文件指针资源。

返回值

它在成功时返回一个包含文件指针当前位置的整数,或者在失败时返回 FALSE。

PHP 版本

ftell()函数最初作为核心 PHP 4 的一部分引入,并且可以很好地与 PHP 5、PHP 7、PHP 8 一起使用。

示例

这是一个基本的示例,它展示了如何使用 PHP 文件系统ftell()函数。因此它打开一个文件进行读取,然后打印文件指针的当前位置。

<?php
   // Open the file using file path 
   $file = fopen("/Path/To/The/File", "r");

   // print current position
   echo ftell($file);
?>

输出

以下是上述示例的输出:

0

示例

此 PHP 代码在使用ftell()函数读取文件后修改了文件内部的读取位置。

<?php
   $file = fopen("/PhpProject/sample.txt", "r");

   // print current position
   echo ftell($file);

   // change current position
   fseek($file, "10");

   // print current position again
   echo "\n" . ftell($file);

   fclose($file);
?>

输出

以下是输出:

0
10

示例

此 PHP 代码创建一个新文件,从中读取一行,打印文件指针的当前位置,然后关闭它。

<?php
   // opens a file and read data
   $file = fopen("/PhpProject/sample.txt", "r");
   $data = fgets($file, 7);

   echo ftell($file); 
   fclose($file);
?>

输出

以上代码产生以下结果:

6

示例

此 PHP 代码从给定文件中读取多行,并使用ftell()函数在读取每一行后打印文件指针的位置。

<?php
   // Opens a file in read mode
   $file = fopen("/PhpProject/sample.txt", "r");

   if ($file) {
      while (!feof($file)) {
         // Read a line from the file
         $line = fgets($file);
         
         // Display the current position of the file pointer
         echo "Position after reading line: " . ftell($file) . "\n";
      }
      fclose($file);

   } else {
      echo "Unable to open the file.";
   }
?> 

输出

这将产生以下结果:

Position after reading line: 14

示例

在此 PHP 代码中,我们将使用 fseek() 将文件指针移动到文件的末尾,并使用ftell()函数显示文件大小。

<?php
   // Opens a file in read mode
   $file = fopen("/PhpProject/sample.txt", "r");

   if ($file) {
      // Move the file pointer to the end of the file
      fseek($file, 0, SEEK_END);
      
      // Display the position of the file pointer (file size)
      echo "File size: " . ftell($file) . "bytes";
      
      // Close the file
      fclose($file);
   } else {
      echo "Unable to open the file.";
   }
?> 

输出

这将生成以下输出:

File size: 104 bytes

注意

由于 PHP 的整数类型是有符号的,并且许多平台使用 32 位整数,因此对于大于 2GB 的文件,多个文件系统方法可能会产生意外的结果。

总结

使用 PHP 的ftell()函数查找打开文件中文件指针的当前位置。当您需要跟踪已读取的文件量或在文件内部的特定区域执行操作时,此函数非常有用。

php_function_reference.htm
广告