PHP에서 Finfo_file ()은 파일의 MIME 유형 또는 기타 정보를 얻는 데 일반적으로 사용되는 기능입니다. 일반적으로 finfo_file () 함수는 파일의 마임 유형을 반환하고, 더 자세한 정보를 얻거나 반환 값의 형식을 변경하는 등 출력 형식을보다 정확하게 제어하려면 finfo :: set_flags () 메소드를 통해이를 수행 할 수 있습니다.
finfo :: set_flags () 는 FINFO 클래스의 메소드로 파일 정보가 추출되는 방법을 제어 할 수 있습니다. 플래그 비트를 설정하면 특정 요구에 맞게 FINFO_FILE () 함수의 동작을 조정할 수 있습니다.
이 기사는 finfo :: set_flags ()를 사용하여 Finfo_file () 의 출력 형식을 변경하는 방법을 자세히 소개합니다.
finfo :: set_flags ()는 FINFO 클래스의 메소드입니다. 파일 정보를 검색 할 때 추가 플래그를 설정하는 데 사용할 수 있습니다. 이 플래그는 파일 정보에 의해 반환되는 특정 형식 및 컨텐츠를 제어합니다. finfo :: set_flags () 메소드는 파일의 구문 분석 동작에 영향을 미치는 하나 이상의 일정한 플래그를 허용합니다.
일반적으로 사용되는 플래그 상수는 다음과 같습니다.
FileInfo_mime_type : 마임 유형 (기본 동작)을 반환합니다.
FileInfo_mime_encoding : 마임 인코딩을 반환합니다.
FileInfo_text : 파일이 텍스트 파일인지 여부를 반환합니다.
FileInfo_preserve_atime : 파일을 열 때 파일의 마지막 액세스 시간을 유지합니다.
먼저 set_flags () 메소드를 사용하려면 FINFO 객체를 만들어야합니다.
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// 만들다 finfo 물체</span></span><span>
</span><span><span class="hljs-variable">$finfo</span></span><span> = </span><span><span class="hljs-keyword">new</span></span><span> </span><span><span class="hljs-title function_ invoke__">finfo</span></span><span>(FILEINFO_MIME);
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>
FINFO 객체가 위에 생성되고 기본 MIME 유형 플래그가 지정됩니다.
set_flags () 메소드를 사용하여 FINFO 객체에 추가 플래그를 추가하여 파일 정보를 얻는 방법을 제어 할 수 있습니다. 논리 또는 연산자를 사용하여 여러 플래그를 결합 할 수 있습니다.
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// 설정 FILEINFO_MIME_TYPE 그리고 FILEINFO_MIME_ENCODING 심벌 마크</span></span><span>
</span><span><span class="hljs-variable">$finfo</span></span><span>-></span><span><span class="hljs-title function_ invoke__">set_flags</span></span><span>(FILEINFO_MIME_TYPE | FILEINFO_MIME_ENCODING);
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>
위의 코드는 두 개의 플래그를 설정합니다.
FileInfo_mime_type : 파일의 마임 유형을 반환합니다.
FileInfo_mime_encoding : 마임 인코딩을 반환합니다.
플래그가 설정되면 finfo_file () 함수를 사용하여 파일 정보를 얻을 수 있습니다.
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// 사용 finfo_file 파일을 얻으십시오 MIME 类型그리고编码</span></span><span>
</span><span><span class="hljs-variable">$fileInfo</span></span><span> = </span><span><span class="hljs-variable">$finfo</span></span><span>-></span><span><span class="hljs-title function_ invoke__">file</span></span><span>(</span><span><span class="hljs-string">'example.jpg'</span></span><span>);
</span><span><span class="hljs-comment">// 출력 파일 MIME 类型그리고编码</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$fileInfo</span></span><span>;
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>
FININFO_MIME_TYPE 및 FILEINFO_MIME_ENCODING 외에도 FINFO 클래스는 다른 공통 플래그를 제공합니다.
FileInfo_mime : 파일의 마임 유형을 반환합니다 (인코딩 제외).
FileInfo_text : 파일이 텍스트 파일인지 확인하십시오.
FileInfo_devices : 파일이 장치 파일 인 경우 장치 유형이 반환됩니다.
예를 들어, 파일 유형의 파일 유형을 가져 와서 텍스트 파일인지 확인하려면 다음 코드를 사용할 수 있습니다.
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// 설정 FILEINFO_MIME 그리고 FILEINFO_TEXT 심벌 마크</span></span><span>
</span><span><span class="hljs-variable">$finfo</span></span><span>-></span><span><span class="hljs-title function_ invoke__">set_flags</span></span><span>(FILEINFO_MIME | FILEINFO_TEXT);
</span><span><span class="hljs-comment">// 파일 정보를 얻으십시오</span></span><span>
</span><span><span class="hljs-variable">$fileInfo</span></span><span> = </span><span><span class="hljs-variable">$finfo</span></span><span>-></span><span><span class="hljs-title function_ invoke__">file</span></span><span>(</span><span><span class="hljs-string">'example.txt'</span></span><span>);
</span><span><span class="hljs-comment">// 출력 파일 정보</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$fileInfo</span></span><span>;
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>
여러 파일이 있고 파일 유형 및 인코딩에 따라 처리하려면 다음을 수행 할 수 있습니다.
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// 만들다 finfo 물체</span></span><span>
</span><span><span class="hljs-variable">$finfo</span></span><span> = </span><span><span class="hljs-keyword">new</span></span><span> </span><span><span class="hljs-title function_ invoke__">finfo</span></span><span>(FILEINFO_MIME);
</span><span><span class="hljs-comment">// 설정심벌 마크,얻다 MIME 类型그리고编码</span></span><span>
</span><span><span class="hljs-variable">$finfo</span></span><span>-></span><span><span class="hljs-title function_ invoke__">set_flags</span></span><span>(FILEINFO_MIME_TYPE | FILEINFO_MIME_ENCODING);
</span><span><span class="hljs-comment">// 파일 목록</span></span><span>
</span><span><span class="hljs-variable">$files</span></span><span> = [</span><span><span class="hljs-string">'example.jpg'</span></span><span>, </span><span><span class="hljs-string">'example.txt'</span></span><span>, </span><span><span class="hljs-string">'example.mp4'</span></span><span>];
</span><span><span class="hljs-keyword">foreach</span></span><span> (</span><span><span class="hljs-variable">$files</span></span><span> </span><span><span class="hljs-keyword">as</span></span><span> </span><span><span class="hljs-variable">$file</span></span><span>) {
</span><span><span class="hljs-comment">// 파일 정보를 얻으십시오</span></span><span>
</span><span><span class="hljs-variable">$fileInfo</span></span><span> = </span><span><span class="hljs-variable">$finfo</span></span><span>-></span><span><span class="hljs-title function_ invoke__">file</span></span><span>(</span><span><span class="hljs-variable">$file</span></span><span>);
</span><span><span class="hljs-comment">// 输出文件类型그리고编码</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"File: <span class="hljs-subst">$file</span></span></span><span>\n";
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"MIME Type and Encoding: <span class="hljs-subst">$fileInfo</span></span></span><span>\n\n";
}
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>
finfo :: set_flags () 메소드를 사용하여 finfo_file ()에서 반환 한 파일 정보 형식을 유연하게 조정할 수 있습니다. 특정 요구 사항에 따라 텍스트 파일이든 파일 유형, 인코딩과 같은 자세한 정보를 얻기 위해 다른 플래그를 설정할 수 있습니다. 이를 통해 특히 여러 유형의 파일을 처리 할 때 파일 유형을보다 정확하게 처리하고 구문 분석 할 수있어 코드 유연성과 안정성을 향상시킬 수 있습니다.
로고를 합리적으로 구성하면 파일 정보 획득의 정확성과 완전성을 보장하여 파일 업로드 및 파일 확인과 같은 기능 개발을 더 잘 지원할 수 있습니다.