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 編碼,需要讀取三次才是一個完整字符,否則會出現亂碼。