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 编码,需要读取三次才是一个完整字符,否则会出现乱码。