1
我用ZipArchive
來壓縮所有的照片。原始照片的文件名具有字符unicode。將所有照片壓縮爲zip文件後,照片的文件名將更改爲另一個字符。在zip中編寫unicode文件名php(linux服務器)
例如照片的原始文件名是"កែវ កេត_1429672475273.jpg"
,它將在zip文件中爲"сЮАсЯВсЮЬ сЮАсЯБсЮП_1429672475273.jpg"
。
這是我簡單的代碼:
$zip = new ZipArchive();
$filename = 'photos.zip';
if ($zip->open($filename, ZipArchive::OVERWRITE) !== TRUE) {
exit("Cannot open <$filename>");
}
$teachers = array(
'កែវ កេត_1429672475273.jpg',
'ផាន់ ចាន់រស្មី_1429671047820.jpg',
'ម៉ៅ ហៀង_1427422340782.jpg',
);
foreach ($teachers as $teacherFileName) {
if (file_exists($teacherFileName) && is_file($teacherFileName)) {
$zip->addFile($teacherFileName, 'teachers/' . $teacherFileName);
}
}
$zip->addFromString('version.txt', date('YmdHis'));
$zip->close();
這些文件與統一碼:
的文件名不是原始文件相同字符的Unicode:
我目前的服務器是Ubuntu 14.10 64bit(本地機器)和Gentoo 64bit(真實服務器)。結果是一樣的。
在此先感謝!