我正在使用php ZipArchive,我遇到了一个简单的问题。
我需要创建新文件,如果存在具有该名称的现有文件,我需要覆盖它。
我的问题是,如果我使用此代码
if ($zip->open($packageFileName, ZipArchive::OVERWRITE) === TRUE)
它将覆盖任何具有相同名称的现有文件,但是如果具有这样名称的文件不存在则没有任何反应,如果case返回false并且我在zip文件中填入了if if case中的文件,但是因为if file是不在上面的磁盘上失败并且没有创建文件。
如果我这样做
if ($zip->open($packageFileName, ZipArchive::CREATE) === TRUE)
它将返回true并且文件将被创建或更新,但我不想更新文件,我需要覆盖该文件。
所以我被困了一下,我想要覆盖文件,如果它不存在我想要它创建,有没有办法在一行中执行此操作,所以我不必在多行中检查这个,我检查是否文件存在,然后选择CREATE或OVERWRITE,为什么没有CREATE_OVERWRITE常量?
答案 0 :(得分:3)
就像PHP中的错误代码一样,zip标志也是按位添加意味着您可以使用OR (|)
组合它们来做“更多”
if ($zip->open($packageFileName, (ZipArchive::CREATE | ZipArchive::OVERWRITE) ))
如果上面没有其他地方会覆盖,上面会创建一个zip。这就是你如何做“CREATE_OVERWRITE”