PHP ZipArchive не поддерживает файлы UTF8 для открытия
моя проблема в OPEN-файлах с именем UTF8. ZipArchive не открывает файлы с символом UTF8. Я не добавляю новый файл, мне нужно только открыть файл.
php: 5.6 и используйте Yii2.
код:
$path = "files/تست تست.zip"; $zip = new \ZipArchive(); if($zip->open($path) === true) { return "File opened"; } else { return "File could not be opened"; }
Извините, что обозначили это как дубликат для несвязанной проблемы.
Я могу открыть Zip-файлы UTF-8 без проблем с помощью PHP 5.6.
Этот код создаст новый ZIP-файл с этим именем файла без проблем с файлом «test.txt»:
$path = "تست تست.zip"; $zip = new ZipArchive(); if($zip->open($path, ZipArchive::CREATE) === true) { echo "File opened\n"; $zip->addFromString("test.txt", "Test file"); $zip->close(); } else { echo "File could not be opened"; }
Этот код откроет существующий ZIP-файл с этим именем и распечатает первое имя файла из архива:
$path = "تست تست.zip"; $zip2 = new ZipArchive(); if($zip2->open($path) === true) { echo "File opened\n"; echo $zip2->getNameIndex(0); $zip2->close(); } else { echo "File could not be opened"; }
Эти примеры отлично работают в PHP Sandbox и на phptester.com (прямой ссылки нет). Я также пробовал это на 3v4l.org, но у них нет расширения php-zip, поэтому ZipArchive
там недоступен.