
finfo_close() 함수는 finfo_open() 함수와 매칭되는 함수로, 파일 정보를 가져올 때 사용한 리소스를 닫는 역할을 합니다. 하지만 finfo_close() 함수를 호출해도 이전에 사용한 파일 정보가 잘못된 값으로 출력되는 문제가 발생하는 이유는 다음과 같습니다.
1. finfo_open() 함수로 열린 리소스는 finfo_file() 함수를 호출할 때까지 닫히지 않습니다. 따라서 finfo_close() 함수를 호출하기 전에 finfo_file() 함수를 호출해야 합니다.
2. finfo_file() 함수는 파일 정보를 가져올 때 사용한 리소스를 닫지 않습니다. 따라서 finfo_close() 함수를 호출하기 전에 finfo_file() 함수를 호출해야 합니다.
3. finfo_close() 함수를 호출하기 전에 finfo_open() 함수를 다시 호출하면 이전에 열린 리소스가 닫히지 않습니다. 따라서 finfo_close() 함수를 호출하기 전에 finfo_open() 함수를 다시 호출하지 않아야 합니다.
해결 방법은 다음과 같습니다.
- finfo_open() 함수로 열린 리소스를 닫기 전에 finfo_file() 함수를 호출해야 합니다.
- finfo_file() 함수로 가져온 파일 정보를 사용하기 전에 finfo_close() 함수를 호출해야 합니다.
예를 들어, 다음과 같이 코드를 수정할 수 있습니다.
#hostingforum.kr
php
$finfo = finfo_open(FILEINFO_MIME_TYPE);
echo finfo_file($finfo, 'test.txt');
finfo_close($finfo);
또는 다음과 같이 코드를 수정할 수 있습니다.
#hostingforum.kr
php
$finfo = finfo_open(FILEINFO_MIME_TYPE);
$mimeType = finfo_file($finfo, 'test.txt');
finfo_close($finfo);
echo $mimeType;
이러한 방법으로 finfo_close() 함수를 호출하기 전에 finfo_file() 함수를 호출하고, finfo_file() 함수로 가져온 파일 정보를 사용하기 전에 finfo_close() 함수를 호출하면 이전에 사용한 파일 정보가 잘못된 값으로 출력되는 문제가 해결될 것입니다.
2025-05-29 21:31