Итак, как описано в самом вопросе, я хочу заменить файл, из которого открыт zip-архив, а затем перезаписывающий файлы новой версией.
Если мой вопрос все еще не ясен, то я хочу получить zip-файл с сервера, а затем разархивировать его с помощью CLASS «ZipArchive», а затем перезаписать каждый файл, находящийся в Zip, в целевое местоположение, проблема будет php-файл, с помощью которого происходит эта вещь, будет перезаписан.
Так сгенерирует ли php ошибку или процесс пойдет так, как мы хотим?
В Linux файлы обычно не блокируются (см. https://unix.stackexchange.com/questions/147392/what-is-advisory-locking-on-files-that-unix-systems-typically-employs) так что вы можете делать все, что вы хотите с этим файлом. PHP работает с этим файлом в памяти, поэтому вы можете перезаписать его во время выполнения.
Но если вы будете запускать сценарий несколько раз, пока выполняется первый, он может загрузить неполную версию, а затем выдаст какую-то ошибку, поэтому может быть целесообразно убедиться, что этого не произойдет (с использованием блокировок), или попытаться выполнить некоторые из них. более атомный подход.
Windows блокирует файлы, поэтому я предполагаю, что вы не сможете извлечь файлы таким же образом.
Других решений пока нет …