Rumah > Artikel > pembangunan bahagian belakang > Apa yang perlu dilakukan jika folder bercelaru apabila php memampatkan fail
Penyelesaian kepada folder bercelaru apabila memampatkan fail PHP: 1. Ubah suai fail kelas "pclzip.php" dengan kandungan "mb_convert_encoding( $p_filedescr['stored_filename'],'GB2312','UTF-8' );"; 2. Tanpa menukar fail pakej kelas, cuma ubah suai "iconv("GBK","UTF-8//IGNORE",$file);".
Persekitaran pengendalian tutorial ini: sistem Windows 7, PHP versi 8.1, komputer Dell G3.
Apakah yang perlu saya lakukan jika folder bercelaru apabila php memampatkan fail?
Selesaikan masalah Cina PHP PclZip
Apabila menggunakan Pclzip, fail tidak boleh dimampatkan/nyahmampat Selepas menjejaki mesej ralat, ia ditemui bahawa fail/direktori tidak boleh dibuka Walau bagaimanapun, keizinan folder adalah betul Selepas mencetak laluan fail, saya mendapati ia bercelaru. Sebab masalah ini ialah pengekodan nama fail dalam zip di bawah windows ialah gb2312, manakala php menggunakan pengekodan utf-8.
Kaedah 1: Penyelesaiannya adalah untuk mengubah suai fail kelas pclzip.php:
Ubah suai bahagian fail termampat:
kaedah privAddFile:
//$p_header['stored_filename'] = $p_filedescr['stored_filename']; // 修改为下面一行
$p_header['stored_filename'] = mb_convert_encoding( $p_filedescr['stored_filename'],'GB2312','UTF-8');
Pengubahsuaian separa fail yang dinyahmampat:
Dalam kaedah privExtractFile:
$p_entry['filename'] = $p_path."/".$p_entry['filename']; // 加入下面一行 $p_entry['filename'] = mb_convert_encoding($p_entry['filename'], 'UTF-8', 'gb2312');
Kaedah 2: Tanpa menukar fail pakej kelas, anda boleh menggunakan kod berikut untuk menyahmampat Nama fail Cina dengan aksara bercelaru Kodnya adalah seperti berikut:
$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 ialah nama fail biasa selepas penyahmampatan, tetapi nama fail pada pelayan dalam kaedah ini masih bercelaru, tetapi $file adalah nama fail Cina biasa semasa membentuk.
Pembelajaran yang disyorkan: "Tutorial Video PHP"
Atas ialah kandungan terperinci Apa yang perlu dilakukan jika folder bercelaru apabila php memampatkan fail. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!