PHP | fgetc 函數

怎樣讀取一個字符,避免中文出現亂碼

最近更新時間 2020-12-31 15:12:28

fgetc 函數從文件指針中讀取字符。

fgetc() 函數返回值為一個字符,直到 EOF 則返回 false,判斷是否 EOF 應該使用 === 運算符來測試。

函數定義

fgetc ( resource $handle ) : string
// 源文件位於:ext/standard/file.c
# 函數定義

PHPAPI PHP_FUNCTION(fgetc)
{
  ...
  result = php_stream_getc(stream);

  if (result == EOF) {
    RETVAL_FALSE;
  } else {
    buf[0] = result;
    buf[1] = '\0';

    RETURN_STRINGL(buf, 1);
  }
}

參數

  • checkhandle -文件指針。文件指針必須有效,並且是通過 fopen() 或 fsockopen() 函數成功打開的文件(並還未由 fclose() 關閉)。

返回值

  • checkbool - 返回一個包含有一個字符的字符串,該字符從 handle 指向的文件中得到。直到 EOF 則返回 false。

示例1: - 使用 fgetc() 函數從文件指針中讀取字符。

<?php
/**
 * PHP 使用 fgetc() 函數從文件指針中讀取字符。
 *
 * @since Version 1.0.0
 * @filesource
 */

// 打開文件
$fp = fopen('foo.txt', 'r');

// 判斷文件是否讀取成功
if(!$fp) exit(0);

// 讀取文件
while( false !== ($char = fgetc($fp))) {
  echo $char.PHP_EOL;
}

// 關閉文件
fclose($fp);

fgetc() 函數讀取的是一個字符,如果中文是 UTF-8 編碼,需要讀取三次才是一個完整字符,否則會出現亂碼。

rss_feed