php fgets 잘못된 코드에 대한 해결 방법: 먼저 "메뉴 수정->페이지 속성->제목/인코딩"을 클릭한 다음 인코딩에서 "중국어 간체"를 선택한 다음 "새로고침"을 클릭하여 확인하세요. "fgets" 함수는 파일을 읽기만 합니다.
추천: "PHP 비디오 튜토리얼"
PHP로 txt 파일을 읽을 때 중국어 문자가 깨졌을 때 해결 방법
1: 연 페이지가 깨져도 걱정하지 마세요. 하지 마세요. 아직 편집한 내용이 있으면 기억하세요.
2:그런 다음 수정-"페이지 속성-"제목/인코딩
3: 인코딩에서 중국어 간체(gb2321)를 선택합니다.
4: 다시 로드-"확인
을 클릭합니다. 워드패드가 아닌 새 메모장을 만들고 읽을 파일을 모두 이 메모장 파일에 복사하고 저장한 후 다음 코드를 사용하여 메모장 파일 1303275.txt를 읽으면 웹페이지가 gb2312로 인코딩된 것을 알 수 있습니다. , utf8 인코딩으로 변경하면 정상적으로 표시됩니다. 일반적으로 한자는 깨져 보이는데 이는 정상입니다.
<?php $file = fopen("1303275.txt","r");//只读方式打开文本文件 while(! feof($file))//当文件不结束 { $line=fgets($file);//读一行到$line变量 echo $line."<br />"; } fclose($file);//关闭文本文件 ?>
위의 방법은 비교적 어리석지만 아래에서는 문제를 해결합니다. txt 텍스트를 업로드하세요. 코드는 다음과 같습니다:
/* @params $str 输入字符 $type 所需获取编码 @author 长行 */ function autoiconv($str,$type = "gb2312//ignore"){ $utf32_big_endian_bom = chr(0x00) . chr(0x00) . chr(0xfe) . chr(0xff); $utf32_little_endian_bom = chr(0xff) . chr(0xfe) . chr(0x00) . chr(0x00); $utf16_big_endian_bom = chr(0xfe) . chr(0xff); $utf16_little_endian_bom = chr(0xff) . chr(0xfe); $utf8_bom = chr(0xef) . chr(0xbb) . chr(0xbf); $first2 = substr($str, 0, 2); $first3 = substr($str, 0, 3); $first4 = substr($str, 0, 3); if ($first3 == $utf8_bom) $icon = 'utf-8'; elseif ($first4 == $utf32_big_endian_bom) $icon = 'utf-32be'; elseif ($first4 == $utf32_little_endian_bom) $icon = 'utf-32le'; elseif ($first2 == $utf16_big_endian_bom) $icon = 'utf-16be'; elseif ($first2 == $utf16_little_endian_bom) $icon = 'utf-16le'; else { $icon = 'ascii'; return $str;} return iconv($icon,$type,$str); }
위 내용은 PHP fgets에서 읽은 파일이 깨졌을 때 발생하는 문제를 해결하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!