3v4l.org

run code in 300+ PHP versions simultaneously
<?php AjaxHelper::add_action('resume_download', function () { AjaxHelper::verify_nonce(); $resumes = isset($_POST['resumes']) ? (array)$_POST['resumes'] : []; $files = []; if (count($resumes) > 0) { foreach ($resumes as $resume) { $resume_file_id = get_post_meta( $resume, 'resume_file', true ); if (!empty($resume_file_id)) { $files[] = get_attached_file($resume_file_id); } } } header('Pragma: public'); header('Accept-Ranges: bytes'); header('Expires: 0'); header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); header('Content-Disposition: attachment; filename="archive.zip"'); header('Content-Type: application/octet-stream'); $fp = popen('zip -j -q -r - ' . implode(' ', array_map('escapeshellarg', $files)), 'r'); $bufsize = 8192; $buff = ''; while (!feof($fp)) { echo fread($fp, $bufsize); } pclose($fp); // AjaxHelper::show_data(['success' => true, 'file' => $result]); });

preferences:
31.18 ms | 402 KiB | 5 Q