поэтому у меня есть этот код:
$destination = "/dest";
$filepath = 'filepath.zip';
$ret = shell_exec("unzip " . escapeshellarg($filepath) . " -d " . escapeshellarg($destination) . ";
У меня вопрос, как я могу достоверно узнать в PHP, была ли операция распаковки успешной или в результате возникла какая-то ошибка?
shell_exec
вернет вывод unzip.
Добавление параметра -q для распаковки приведет к подавлению вывода, вы можете настроить подавление всех сообщений, кроме ошибок, и если $ret
длина не равна 0, то операция не была успешно завершена.
unzip -tq archive.zip
будет выводить только если архив в порядке или нет. Вы можете сначала запустить эту команду, проверить вывод в PHP и запустить извлечение в случае успеха.
Других решений пока нет …