Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/278.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHPMailer压缩所有附件_Php_Zip_Phpmailer - Fatal编程技术网

PHPMailer压缩所有附件

PHPMailer压缩所有附件,php,zip,phpmailer,Php,Zip,Phpmailer,我正在使用PHPMailer将附件发送到电子邮件 我有如下声明: if(isset($_POST['checkbox1'])) { $mail->addAttachment('pdf/1.pdf'); $name = "PDF 1"; } if(isset($_POST['checkbox2'])) { $mail->addAttachment('pdf/2.pdf'); $name = "PDF 2"> } 在选中的每个复选框的末尾,我希望压缩所有附

我正在使用PHPMailer将附件发送到电子邮件

我有如下声明:

if(isset($_POST['checkbox1'])) {
   $mail->addAttachment('pdf/1.pdf');
   $name = "PDF 1";
}
if(isset($_POST['checkbox2'])) {
   $mail->addAttachment('pdf/2.pdf');
   $name = "PDF 2">
}

在选中的每个复选框的末尾,我希望压缩所有附件并将它们放在一个zip中,而不是一个接一个地发送。

这不是PHPMailer的工作,然后附上:

$zip = new ZipArchive();
$filename = "./files.zip";
$hasfiles = false;

if ($zip->open($filename, ZipArchive::CREATE)!==TRUE) {
    exit("cannot open <$filename>\n");
}

if(isset($_POST['checkbox1'])) {
    $zip->addFile('pdf/1.pdf');
    $hasfiles = true;
}
if(isset($_POST['checkbox2'])) {
    $zip->addFile('pdf/2.pdf');
    $hasfiles = true;
}

$zip->close();

if ($hasfiles) {
    $mail->addAttachment($filename);
}
$zip=new ZipArchive();
$filename=“./files.zip”;
$hasfiles=false;
如果($zip->open($filename,ZipArchive::CREATE)!==TRUE){
退出(“无法打开”);
}
如果(isset($_POST['checkbox1'])){
$zip->addFile('pdf/1.pdf');
$hasfiles=true;
}
如果(isset($_POST['checkbox2'])){
$zip->addFile('pdf/2.pdf');
$hasfiles=true;
}
$zip->close();
如果($hasfiles){
$mail->addAttachment($filename);
}

现在可以工作,但即使未选中,它也会发送每个文件。例如,如果我选中复选框1,它将发送复选框1和复选框2的文件,也许我必须生成不同的zip文件?如果是这样的话,我该怎么做呢?我只是在邮件发送后取消了zip文件的链接,谢谢。