Функция touch
не была явно предназначена для создания файлов, она была предназначена для обновления метки времени файла. В качестве побочного эффекта обновления timestamp, если файл не существует ранее, он будет создан.
Если вы хотите что-либо сделать с zip-архивами, лучше всего использовать класс PHP ZipArchive
.
$zip = new ZipArchive;
if ($zip->open('test.zip', ZipArchive::CREATE|ZipArchive::OVERWRITE) === TRUE) {
$zip->addFile('verylargetextfile.txt', 'whatItWillBeCalledInTheZip.txt');
$zip->close();
echo 'Zip archive Created!' . PHP_EOL;
} else {
echo 'Could not create Zip Archive!' . PHP_EOL;
}
ZipArchive::addFile
позволяет поместить файл в верхнем уровне Zip архива, так что он не будет заключен в папке, т.е .:
$ touch verylargetextfile.txt
$ php -fziptest.php
Zip archive Created!
$ unzip test.zip # Will create whatItWillBeCalledInTheZip.txt in the working directory
См here для получения дополнительной информации.