PHP 文件系统 fgetc() 函数



PHP 文件系统fgetc()函数用于从打开的文件中读取一个字符。它接受文件指针作为参数。该函数可以从打开的文件中返回单个字符,并从给定的文件指针获取一个字符。

此函数可能返回布尔值 false,也可能返回计算结果为 false 的非布尔值,例如 0 或 " "。

此函数处理非常大的文件速度非常慢,因此不能用于处理大型文件。如果我们需要按顺序从大型文件中读取一个字符,可以使用 fgets() 函数按顺序读取一行数据,然后使用fgetc()函数按顺序处理该行数据。

语法

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

string fgetc ( resource $handle )

参数

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

序号 参数及说明
1

handle(必需)

这是指向 FILE 对象的指针,指示从中读取字符的句柄。

返回值

成功时返回字符串值,失败时返回 FALSE。

PHP 版本

fgetc()函数最初作为核心 PHP 4 的一部分引入,并且与 PHP 5、PHP 7、PHP 8 兼容。

示例

此 PHP 代码向我们展示了如何使用 PHP 文件系统fgetc()函数打开文件并从中读取单个字符。之后关闭文件。

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

输出

这将产生以下结果:

t

示例

此 PHP 代码向我们展示了如何使用 while 循环打开文件并读取每个字符直到文件结尾,之后关闭文件。

<?php
   $file = fopen("/PhpProject/sample.txt", "r");
   while(! feof($file)) {
      echo fgetc($file);
   }
   fclose($file);
?>

输出

这将产生以下结果:

tutorialspoint

示例

由于fgetc()函数返回字符串值或失败时返回 FALSE,因此您可以使用条件表达式来验证这一点。请查看下面的代码示例:

<?php
   // Open the file in read mode
   $file = fopen("example.txt", "r"); 

   // Check if the file was opened successfully
   if ($file) { 
      // Read characters until the end of the file
      while (($char = fgetc($file)) !== false) { 
         echo $char; // Print each character
      }
      fclose($file); // Close the file
   } else {
      // Error message if file could not be opened
      echo "Could not open file."; 
   }
?>

输出

这将生成以下结果:

Hello World

Tutorialspoint

Information Security

Web Browser

示例

此 PHP 代码计算给定文件中特定字符或字母出现的次数。因此,我们使用了两个变量 $charToCount 和 $count,分别初始化为 a 和 0。

<?php
   // Open a file 
   $file = fopen("/Applications/XAMPP/xamppfiles/htdocs/mac/myfile.txt", "r"); // Open in read mode
   $charToCount = 'a';
   $count = 0;

   if ($file) {
      while (!feof($file)) {
         if (fgetc($file) == $charToCount) {
               $count++;
         }
      }
      // Close the file
      fclose($file); 
      echo "The character '$charToCount' appears $count times in the file.";
   } else {
      // Error message if file could not be opened
      echo "Could not open file."; 
   }
?> 

输出

这将生成以下结果:

The character 'a' appears 22 times in the file.

示例

在此 PHP 示例代码中,我们将尝试从文件中读取字符,并在找到特定字符时停止。我们使用了 $stopChar 变量并将其初始化为点 (.),我们必须在此停止。

<?php
   // Open text file in read mode
   $file = fopen("/Applications/XAMPP/xamppfiles/htdocs/mac/myfile.txt", "r"); 

   // Particular Character for which we have to stop at
   $stopChar = '.';

   if ($file) {
      while (!feof($file)) {
         $char = fgetc($file);
         if ($char === $stopChar) {
               // Stop reading when the specific character is found
               break; 
         }
         
         // Print each character
         echo $char; 
      }

      // Close the file
      fclose($file); 
   } else {

      // Error message if file could not be opened
      echo "Could not open file."; 
   }
?> 

输出

以下是上述代码的输出:

Hello World!!!!!

Today is 13 June 2024 and I am here to help you to learn PHP functions

注释

  • fgetc()方法到达文件结尾时,它将返回 false。
  • 在调用fgetc()之前,始终确保已成功打开文件。此外,正确使用 false 以避免无限循环或问题。

总结

PHP 的fgetc()函数一次从打开的文件中读取一个字符。失败时,它返回字符串或 false。对于大型文件,它效率低下;为了获得更好的性能,请使用 fgets() 读取行并使用fgetc()处理它们。

php_function_reference.htm
广告