>  기사  >  백엔드 개발  >  PHP의 file_exists 함수가 중국어 이름을 지원하지 않는 문제에 대한 자세한 해결 예

PHP의 file_exists 함수가 중국어 이름을 지원하지 않는 문제에 대한 자세한 해결 예

怪我咯
怪我咯원래의
2017-07-11 10:37:191413검색

file_exists — 파일이나 디렉터리가 존재하는지 확인하세요. 구문은 다음과 같습니다.

 file_exists ( $filename )

매개변수 filename은 파일이나 디렉터리의 경로입니다. filename으로 지정된 파일이나 디렉터리가 존재하면 TRUE를 반환하고, 그렇지 않으면 FALSE를 반환합니다.

그러나 이

함수는 웹 페이지가 UTF8 인코딩을 사용할 때 중국어 파일 이름이나 폴더 이름에 대해 올바른 값을 반환할 수 없으며 항상 false를 반환합니다. 테스트 결과, 우리는 해결책을 찾았고 이러한 상황이 발생하는 이유는 PHP가 서로 다른 인코딩으로 인해 올바르게 판단할 수 없기 때문이라고 분석했습니다.

다음 코드는 파일 유무에 관계없이 올바른 값을 반환할 수 없습니다.

<?php;
$file="/attachment/21/0/中文.rar";
$newfile = dirname(FILE).$file;

echo file_exists($newfile);
?>

테스트 후 UTF8 인코딩을 GB2312 인코딩으로 변환하는 문장이 추가되어 올바른 판단이 가능합니다.

<?php
$file="/attachment/21/0/中文.rar";
$newfile = dirname(FILE).$file;

$file=iconv(&#39;UTF-8&#39;,&#39;GB2312&#39;,$file);

echo file_exists($newfile);
?>

위 내용은 PHP의 file_exists 함수가 중국어 이름을 지원하지 않는 문제에 대한 자세한 해결 예의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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