php가 파일을 압축할 때 폴더가 왜곡되는 해결 방법: 1. "mb_convert_encoding( $p_filedescr['stored_filename'],'GB2312','UTF-8');" 내용으로 "pclzip.php" 클래스 파일을 수정합니다. . 클래스 패키지 파일을 변경하지 않고 "iconv("GBK","UTF-8//IGNORE",$file);"만 수정하세요.
이 튜토리얼의 운영 환경: Windows 7 시스템, PHP 버전 8.1, Dell G3 컴퓨터.
PHP로 파일을 압축할 때 폴더가 깨지면 어떻게 해야 하나요?
PclZip에서 중국어 문자 깨짐 문제 해결
Pclzip을 사용할 때 파일을 압축/압축 해제할 수 없습니다. 오류 메시지를 추적해 보면 파일/디렉토리를 열 수 없지만 폴더 권한이 있는 것으로 나타났습니다. 파일 경로를 인쇄한 후 잘못된 것으로 나타났습니다. 이 문제가 발생하는 이유는 Windows에서 zip의 파일 이름 인코딩이 gb2312인 반면 PHP는 utf-8 인코딩을 사용하기 때문입니다.
방법 1: 해결 방법은 pclzip.php 클래스 파일을 수정하는 것입니다:
압축 파일 부분 수정:
privAddFile 방법:
//$p_header['stored_filename'] = $p_filedescr['stored_filename']; // 修改为下面一行
$p_header['stored_filename'] = mb_convert_encoding( $p_filedescr['stored_filename'],'GB2312','UTF-8');
압축 해제된 파일 부분 수정:
privExtractFile 방법:
$p_entry['filename'] = $p_path."/".$p_entry['filename']; // 加入下面一行 $p_entry['filename'] = mb_convert_encoding($p_entry['filename'], 'UTF-8', 'gb2312');
방법 2: 클래스 패키지 파일을 변경하지 않고 다음 코드를 사용하면 문자가 왜곡된 중국어 파일 이름을 압축 해제할 수 있습니다.
$file_type = mb_detect_encoding($file,array('ASCII','GB2312','GBK','UTF-8','LATIN1','BIG5')); if($file_type=='EUC-CN'){ $file = iconv("GBK","UTF-8//IGNORE",$file); }
$file은 압축 해제 후의 일반적인 파일 이름이지만 서버에 있는 파일 이름입니다. 이 방법을 사용하면 여전히 왜곡되어 $file이 일반 중국어 파일 이름으로 만들어집니다.
추천 학습: "PHP 비디오 튜토리얼"
위 내용은 PHP가 파일을 압축할 때 폴더가 깨졌을 경우 어떻게 해야 할까요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!