PHP 압축 해제 zip이 깨졌을 경우 어떻게 해야 할까요?

藏色散人
풀어 주다: 2023-03-08 20:06:01
원래의
2764명이 탐색했습니다.

PHP로 압축을 풀 때 왜곡된 우편번호에 대한 해결 방법: 먼저 해당 PHP 파일을 연 다음 PHP의 zip 캡슐화 프로토콜을 사용하여 압축을 풀어 왜곡된 ZipArchive 코드를 해결합니다.

PHP 압축 해제 zip이 깨졌을 경우 어떻게 해야 할까요?

이 글의 운영 환경: Windows 7 시스템, PHP 버전 7.1, DELL G3 컴퓨터

php 압축 해제된 zip 파일이 깨지는 문제

공식 운영 방법:

open($zipfile); $toDir = "./test"; $s = $zip->extractTo($toDir); print_r(scandir($toDir));
로그인 후 복사

기존 문제

zip이 압축되지 않은 경우 Windows 플랫폼에서 압축된 경우 Linux 서버에서 위 코드를 실행하면 문자가 깨져서 압축이 풀린 파일도 누락됩니다. 해결 방법 파일 시스템은 gbk로 인코딩되어 있고 PHP ZipArchive의 파일 이름은 UTF-입니다. 8 인코딩되었습니다. Zip 아카이브의 파일 이름에 중국어와 같은 특수 문자가 포함되어 있는 경우, 왜곡된 문자의 압축을 풀기 위해 PHP ZipArchive를 사용하는 것은 불가피합니다. ZipArchive 압축 파일이 왜곡되거나 압축할 수 없는 경우에도 동일한 이유가 적용됩니다.

해결책ZipArchive 문서의 압축을 풀기 위해 내장된 ZipArchive::extractTo() 메서드를 사용하지 마세요. 대신 PHP의 zip 캡슐화 프로토콜을 사용하여 ZipArchive의 압축을 풀세요. 파일이 깨졌습니다.

코드 풀기

open($zipfile); $toDir = "./test"; if(!file_exists($toDir)) { mkdir($toDir); } $docnum = $zip->numFiles; for($i = 0; $i < $docnum; $i++) { $statInfo = $zip->statIndex($i); if($statInfo['crc'] == 0) { //新建目录 mkdir($toDir.'/'.substr($statInfo['name'], 0,-1)); } else { //拷贝文件 copy('zip://'.$zipfile.'#'.$statInfo['name'], $toDir.'/'.$statInfo['name']); } } print_r(scandir($toDir));
로그인 후 복사

추천 학습: "

PHP 비디오 튜토리얼

"

위 내용은 PHP 압축 해제 zip이 깨졌을 경우 어떻게 해야 할까요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
php
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!