php - 我的 PHP 脚本不想创建 ZIP 文件
问题描述
我试图编写一个脚本,将一些数据放在一个 zip 文件中。我想我做得很好,但他没有创建 zip 文件。
我已经尝试了很多,但没有发现问题。
<?php
$sql_abfrage_cloud = "SELECT * FROM dateien WHERE code = '$zugang' ORDER BY id";
$abfrage_cloud = $mysqli->query($sql_abfrage_cloud);
$verzeichnis = '/upload/';
$zip_name = date("dHis").'_fc.zip';
$anz_dateien = 0;
$error = 'fatal';
while($fetch = $abfrage_cloud->fetch_assoc()){
$anz_dateien = $anz_dateien + 1;
$zip_datei[$anz_dateien] = $fetch['path'];
}
$zip_arch = new ZipArchive;
$status = $zip_arch->open($zip_name, ZipArchive::CREATE);
if($status==true){
foreach($zip_datei as $datei){
$zip_arch->addFile($verzeichnis.$datei, $datei);
}
if(file_exists($zip_name)){
$error = 'false';
} else {
$error = 'true';
}
}
?>
我预计 $error 会是“假的”,但它是“真的”。
解决方案
您需要调用$zip_arch->close()
保存完成写入文件。
您还应该===
在比较 的结果时使用$zip_archive->open()
,因为非真结果是数字,并且任何非零数字比较等于true
允许类型杂耍时。
$zip_arch = new ZipArchive;
$status = $zip_arch->open($zip_name, ZipArchive::CREATE);
if($status===true){
foreach($zip_datei as $datei){
$zip_arch->addFile($verzeichnis.$datei, $datei);
}
$zip_arch->close();
if(file_exists($zip_name)){
$error = 'false';
} else {
$error = 'true';
}
}
推荐阅读
- mongodb - 从包含特定文档猫鼬的集合中分页
- automation - 我们可以创建 UI PATH 自动化过程的可执行文件吗?
- amazon-web-services - AWS KMS 将公钥 PEM 文件转换为 Cer 文件
- pytorch - 如何在 pyTorch 中将 Norm 层的运行统计数据降至默认值?
- vba - Microsoft Word VBA,如何获得未选择的字体颜色?
- python-3.x - python 3索引有问题
- python - 计算器中的 ValueError
- node.js - 为什么在网站中启用 ssl 时 Mediasoup 停止通信
- java - Lucene:每个token的TF-IDF
- unit-testing - mockk,如何为 MutableMap 使用插槽