此代碼可以正常工作,使ZIP文件包含想要的文件,除了存檔中的文件名(非英文文件名)(本例中爲希伯來文)怪異的字符,而不是適當的希伯來字母。PHP ZipArchive非英文文件名在歸檔中返回時髦的文件名
<?php
$filesfordown = $_POST['GEMin'];
if(empty($filesfordown))
{
echo "No files were seleceted for download.";
}
else
{
$zip_name = "RMW." . time() . ".zip";
$zip = new ZipArchive;
$zip->open($zip_name, ZipArchive::CREATE);
foreach ($filesfordown as $filefordown) {
$zip->addFile($filefordown);
}
$zip->close(); }
header('Content-Type: application/zip');
header("Content-disposition: attachment; filename='$zip_name'");
header('Content-Length: ' . filesize($zip_name));
readfile($zip_name);
ob_flush;
?>
我做了一些摸索,好像是的iconv,setlocalte,或mb_convert_encoding可能有幫助,但無論我試過沒有工作。
任何想法?
P.S.作爲一個側面的問題,有沒有辦法在zip中保留目錄結構?
ETA: 的$_post
的例子可www.domain.com/path/שלום_01MP3
看起來這可能是舊的錯誤: https://bugs.php.net/bug。 PHP?ID = 53948 – Daniel