ZipArchive,我需要创建新文件并覆盖现有文件
ZipArchive, I need to create new file and overwrite existing
我正在使用 php ZipArchive,我 运行 遇到了一个简单的问题。
我需要创建新文件,如果存在同名文件,我需要覆盖它。
我的问题是这样的,如果我使用这段代码
if ($zip->open($packageFileName, ZipArchive::OVERWRITE) === TRUE)
它将覆盖任何具有相同名称的现有文件,但是如果不存在具有此类名称的文件则什么也不会发生,如果情况 returns 为 false 并且我会在 zip 文件中填充此 if案例,但是因为如果文件不在上面的磁盘上失败并且没有文件被创建。
如果我这样做
if ($zip->open($packageFileName, ZipArchive::CREATE) === TRUE)
它将 return 为真,文件将被创建或更新,但我不想更新文件,我需要覆盖文件。
所以我有点卡住了,我想覆盖文件,如果它不存在我想创建它,有没有办法在一行中执行此操作,这样我就不必在多行中检查它检查文件是否存在,然后选择 CREATE 或 OVERWRITE,为什么没有 CREATE_OVERWRITE 常量?
就像 PHP 中的错误代码一样,zip 标志也是按位累加的,这意味着您可以使用 OR (|
) 组合它们来做更多...
if ($zip->open($packageFileName, (ZipArchive::CREATE | ZipArchive::OVERWRITE) ))
上面将创建一个 zip(如果不存在),否则将被覆盖。这就是你如何做你的 CREATE_OVERWRITE
.
我正在使用 php ZipArchive,我 运行 遇到了一个简单的问题。
我需要创建新文件,如果存在同名文件,我需要覆盖它。
我的问题是这样的,如果我使用这段代码
if ($zip->open($packageFileName, ZipArchive::OVERWRITE) === TRUE)
它将覆盖任何具有相同名称的现有文件,但是如果不存在具有此类名称的文件则什么也不会发生,如果情况 returns 为 false 并且我会在 zip 文件中填充此 if案例,但是因为如果文件不在上面的磁盘上失败并且没有文件被创建。
如果我这样做
if ($zip->open($packageFileName, ZipArchive::CREATE) === TRUE)
它将 return 为真,文件将被创建或更新,但我不想更新文件,我需要覆盖文件。
所以我有点卡住了,我想覆盖文件,如果它不存在我想创建它,有没有办法在一行中执行此操作,这样我就不必在多行中检查它检查文件是否存在,然后选择 CREATE 或 OVERWRITE,为什么没有 CREATE_OVERWRITE 常量?
就像 PHP 中的错误代码一样,zip 标志也是按位累加的,这意味着您可以使用 OR (|
) 组合它们来做更多...
if ($zip->open($packageFileName, (ZipArchive::CREATE | ZipArchive::OVERWRITE) ))
上面将创建一个 zip(如果不存在),否则将被覆盖。这就是你如何做你的 CREATE_OVERWRITE
.