>백엔드 개발 >PHP 튜토리얼 >월드 오브 워크래프트는 필요한 파일을 읽을 수 없습니다. PHP는 잘못된 문자가 있는 파일을 읽습니다.

월드 오브 워크래프트는 필요한 파일을 읽을 수 없습니다. PHP는 잘못된 문자가 있는 파일을 읽습니다.

PHPz
PHPz원래의
2016-07-29 08:41:581502검색

온라인 솔루션에서는 크롤링 후 iconv()를 사용하여 트랜스코딩하라고 나와 있습니다. 그것을 읽은 후 나는 뭔가 잘못되었다고 느꼈습니다. 하나는 iconv 라이브러리가 컴파일되지 않았을 수 있다는 것이고 더 큰 문제는 인코딩이 스트림 변환과 관련되어 있다는 것입니다(iconv를 사용하는 경우 PHP는 실제로 코드를 두 번 변환합니다. -> UTF-8 -> GB2312): 바쁜 일이 헛되지 않습니까?

PHP 문서를 주의 깊게 읽어보세요(모두가 어떻게 코드를 작성하는지 모르겠지만 문서는 매우 명확합니다). 위에서 fopen() 및 file_get_contents()에 대해 언급한 바에 따르면 "기본값은 UTF-8입니다. 하지만 사용자는 사용자 정의 컨텍스트를 생성하거나 stream_default_encoding()을 사용하여 기본값을 변경하여 다른 인코딩을 지정할 수 있습니다.) 그래서 테스트를 위해 stream_default_encoding('gb2312′);을 사용했는데, 희미하게도 이 함수가 존재하지 않는 걸까요? ! PHP 6에서만 지원되는 것 같습니다. 그러나 확실한 경로는 없으며 사용할 수 있는 "사용자 정의 컨텍스트 속성"도 있습니다.
문서를 좀 더 자세히 읽은 후 마침내 이 문제를 해결했습니다.

코드는 다음과 같습니다.

//스트림의 인코딩 형식을 설정합니다. 파일 스트림(파일), 네트워크 접속인 경우 파일을 http로 변경하세요

$opts = array('file' => array('encoding' => 'gb2312')); 
$ctxt = stream_context_create($opts); 
file_get_contents(文件名, FILE_TEXT, $ctxt);

위 내용은 World of Warcraft가 필요한 파일을 읽을 수 없고 php가 깨져서 파일을 읽는 문제를 소개합니다. 월드 오브 워크래프트에서 필요한 파일을 읽을 수 없는 문제를 포함하여 PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.