php에서 zip_entry_name 및 zip_entry_read는 zip 파일을 작동하는 데 사용되는 함수입니다. 이 두 기능을 통해 zip 파일의 특정 컨텐츠를 읽을 수 있습니다. 이 기사에서는이 두 기능의 사용법을 소개하고 실제 사례를 결합 하여이 두 기능을 통해 Zip 파일의 파일 내용을 읽는 방법을 보여줍니다.
Zip 파일은 스토리지 및 전송을 쉽게하기 위해 여러 파일과 디렉토리를 하나의 파일로 압축하는 데 사용되는 일반적인 압축 파일 형식입니다. ZIP 형식은 무손실 압축을 지원하며 여러 유형의 파일을 포함 할 수 있습니다. PHP에서 Zip 파일을 조작하기 위해 ZipAchive 클래스를 사용하거나 기본 Zip_* 시리즈 기능을 사용하여 ZIP 파일을 직접 처리 할 수 있습니다.
zip_entry_name 함수는 zip 파일에서 항목 (예 : 파일)의 이름을 얻는 데 사용됩니다. 이 함수는 Zip 파일을 사용하여 호출되기 전에 Zip 파일을 열린 후 메모리로 파일 항목을 읽으려면 Zip_Read 함수를 사용해야합니다.
함수 정의 :
<span><span><span class="hljs-keyword">string</span></span><span> </span><span><span class="hljs-title function_ invoke__">zip_entry_name</span></span><span> ( resource </span><span><span class="hljs-variable">$zip_entry</span></span><span> )
</span></span>
매개 변수 :
$ Zip_entry : Zip_Read 함수에 의해 반환 된 항목 자원.
반품 값 :
항목의 이름을 나타내는 문자열을 반환합니다. 오류가 발생하면 False가 반환됩니다.
zip_entry_read 함수는 zip 파일의 항목 내용을 읽는 데 사용됩니다. 이 기능은 추가 처리를 위해 파일 내용을 문자열로 읽을 수 있습니다.
함수 정의 :
<span><span><span class="hljs-keyword">string</span></span><span> </span><span><span class="hljs-title function_ invoke__">zip_entry_read</span></span><span> ( resource </span><span><span class="hljs-variable">$zip_entry</span></span><span> , </span><span><span class="hljs-keyword">int</span></span><span> </span><span><span class="hljs-variable">$length</span></span><span> )
</span></span>
매개 변수 :
$ Zip_entry : Zip_Read 함수에 의해 반환 된 항목 자원.
$ 길이 : 시간당 최대 바이트 수입니다. 일반적으로 항목 크기로 설정할 수 있습니다.
반품 값 :
읽기 내용을 나타내는 문자열을 반환합니다. 읽기가 실패하면 False가 반환됩니다.
다음은 zip_entry_name 및 zip_entry_read를 사용하여 zip 파일의 내용을 읽는 방법을 보여주는 간단한 예입니다.
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// 열려 있는ZIP문서</span></span><span>
</span><span><span class="hljs-variable">$zip</span></span><span> = </span><span><span class="hljs-title function_ invoke__">zip_open</span></span><span>(</span><span><span class="hljs-string">'example.zip'</span></span><span>);
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$zip</span></span><span>) {
</span><span><span class="hljs-comment">// 트래버스ZIP문서中的所有条目</span></span><span>
</span><span><span class="hljs-keyword">while</span></span><span> (</span><span><span class="hljs-variable">$zip_entry</span></span><span> = </span><span><span class="hljs-title function_ invoke__">zip_read</span></span><span>(</span><span><span class="hljs-variable">$zip</span></span><span>)) {
</span><span><span class="hljs-comment">// 항목의 이름을 얻으십시오</span></span><span>
</span><span><span class="hljs-variable">$entry_name</span></span><span> = </span><span><span class="hljs-title function_ invoke__">zip_entry_name</span></span><span>(</span><span><span class="hljs-variable">$zip_entry</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"正在读取문서: <span class="hljs-subst">$entry_name</span></span></span><span>\n";
</span><span><span class="hljs-comment">// 항목의 크기를 얻으십시오</span></span><span>
</span><span><span class="hljs-variable">$entry_size</span></span><span> = </span><span><span class="hljs-title function_ invoke__">zip_entry_filesize</span></span><span>(</span><span><span class="hljs-variable">$zip_entry</span></span><span>);
</span><span><span class="hljs-comment">// 读取문서内容</span></span><span>
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">zip_entry_open</span></span><span>(</span><span><span class="hljs-variable">$zip</span></span><span>, </span><span><span class="hljs-variable">$zip_entry</span></span><span>, </span><span><span class="hljs-string">"r"</span></span><span>)) {
</span><span><span class="hljs-comment">// 将문서内容读取到一个变量中</span></span><span>
</span><span><span class="hljs-variable">$file_content</span></span><span> = </span><span><span class="hljs-title function_ invoke__">zip_entry_read</span></span><span>(</span><span><span class="hljs-variable">$zip_entry</span></span><span>, </span><span><span class="hljs-variable">$entry_size</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"문서内容: \n<span class="hljs-subst">$file_content</span></span></span><span>\n";
</span><span><span class="hljs-comment">// 항목을 닫으십시오</span></span><span>
</span><span><span class="hljs-title function_ invoke__">zip_entry_close</span></span><span>(</span><span><span class="hljs-variable">$zip_entry</span></span><span>);
} </span><span><span class="hljs-keyword">else</span></span><span> {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"无法열려 있는条目 <span class="hljs-subst">$entry_name</span></span></span><span>\n";
}
}
</span><span><span class="hljs-comment">// 폐쇄ZIP문서</span></span><span>
</span><span><span class="hljs-title function_ invoke__">zip_close</span></span><span>(</span><span><span class="hljs-variable">$zip</span></span><span>);
} </span><span><span class="hljs-keyword">else</span></span><span> {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"无法열려 있는ZIP문서\n"</span></span><span>;
}
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>
zip 파일을여십시오. Zip_Open은 ZIP 파일을 열고 리소스 핸들을 반환하는 데 사용됩니다. 개구부가 실패하면 False를 반환하십시오.
항목 읽기 : Zip_Read는 Zip 파일에서 입력 리소스를 읽는 데 사용됩니다. Zip_Read가 호출 될 때마다 다음 항목의 리소스를 반환합니다.
항목 이름을 가져옵니다. Zip_entry_name을 사용하여 현재 항목의 이름 (예 : 파일 이름)을 가져 와서 출력하십시오.
항목 내용 읽기 : Zip_entry_Open 함수에서 항목을 열고 읽기 모드를 지정하십시오 ( R은 읽기를위한 것). 그런 다음 zip_entry_read를 사용하여 항목의 내용을 읽으십시오. 읽기 내용은 파일에 인쇄하거나 저장하는 등 직접 처리 할 수 있습니다.
닫기 항목 : Zip_entry_Close는 항목을 닫고 관련 리소스를 릴리스하는 데 사용됩니다.
zip 파일을 닫으십시오 : zip 파일의 처리를 완료 한 후 zip_close를 사용하여 zip 파일을 닫고 리소스를 해제하십시오.
zip_entry_read 에서 읽은 내용은 바이트 스트림에 의해 읽히므로 들어오는 $ 길이 매개 변수가 합리적인지 확인해야합니다. 컨텐츠가 비교적 크면 배치로 읽는 것이 가장 좋습니다.
더 큰 ZIP 파일을 작동 할 때는 처리 중에 메모리 오버플로가 발생하지 않도록하십시오. 많은 수의 파일을 읽어야하는 경우 한 번에 너무 많은 콘텐츠를 읽지 않도록 단계별로 처리하는 것이 좋습니다.
zip_entry_name 및 zip_entry_read 는 매우 실용적인 기능입니다. ZIP 파일에서 항목 이름과 특정 컨텐츠를 쉽게 읽을 수 있도록 조합으로 사용됩니다. 압축 패키지를 처리 할 때이 두 기능은 저수준 작동 방법을 제공하여 실제 요구에 따라 파일 내용을 유연하게 읽을 수 있습니다.