Lösungen für verstümmelte Ordner, wenn PHP Dateien komprimiert: 1. Ändern Sie die Klassendatei „pclzip.php“ mit dem Inhalt „mb_convert_encoding( $p_filedescr['stored_filename'],'GB2312','UTF-8');"; . Ohne die Klassenpaketdatei zu ändern, ändern Sie einfach „iconv(“GBK“,UTF-8//IGNORE“,$file);“.
Die Betriebsumgebung dieses Tutorials: Windows 7-System, PHP-Version 8.1, Dell G3-Computer.
Was soll ich tun, wenn der Ordner beim Komprimieren von Dateien mit PHP verstümmelt ist?
Das chinesische verstümmelte Problem von PHP PclZip wurde gelöst. Bei der Verwendung von Pclzip konnte die Datei nicht komprimiert/dekomprimiert werden. Es wurde festgestellt, dass die Datei/das Verzeichnis nicht geöffnet werden konnte, aber die Ordnerberechtigungen korrekt waren . Nach dem Drucken des Dateipfads wurde festgestellt, dass er verstümmelt war. Der Grund für dieses Problem ist, dass die Dateinamenkodierung in der ZIP-Datei unter Windows gb2312 ist, während PHP die UTF-8-Kodierung verwendet.
Methode 1: Die Lösung besteht darin, die Klassendatei pclzip.php zu ändern: Den komprimierten Dateiteil ändern: privAddFile-Methode://$p_header['stored_filename'] = $p_filedescr['stored_filename']; // 修改为下面一行
$p_header['stored_filename'] = mb_convert_encoding( $p_filedescr['stored_filename'],'GB2312','UTF-8');
$p_entry['filename'] = $p_path."/".$p_entry['filename']; // 加入下面一行 $p_entry['filename'] = mb_convert_encoding($p_entry['filename'], 'UTF-8', 'gb2312');
$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); }
PHP-Video-Tutorial
“Das obige ist der detaillierte Inhalt vonWas tun, wenn der Ordner beim Komprimieren der Datei durch PHP verstümmelt ist?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!