"; $response = sendAPICompanySearchRequest($username, $password, $data); $companyArray = json_decode($response, true); $companyData = array(); foreach ($companyArray as $company) { $companyData[] = [$company['name'],$company['ehraid'],$company['uid'],$company['chid'],$company['legalSeat'],$company['registryOfCommerceId'],$company['legalForm']['name']['de'],$company['status'],$company['sogcDate'],$company['deletionDate']]; } if (! file_exists($filename)) { // If File doesn't exist yet $file = fopen($filename, 'w'); if($file) { fputcsv($file, ['name', 'ehraid', 'uid', 'chid', 'legalSeat', 'registryOfCommerceId', 'legalForm', 'status', 'sogcDate', 'deletionDate']); } } else { // If file already exists $file = fopen($filename, 'a'); } if ($file) { foreach ($companyData as $row){ fputcsv($file, $row); } fclose($file); } } function sendEmail($emailAddress, $filename, $smtppassword) { $mail = new PHPMailer(); $mail->isSMTP(); // Set mailer to use SMTP $mail->Host = 'smtp.titan.email; smtp.titan.email'; // Specify main and backup SMTP servers $mail->SMTPAuth = true; // Enable SMTP authentication $mail->Username = 'api@zefix.silias.ch'; // SMTP username $mail->Password = $smtppassword; // SMTP password $mail->SMTPSecure = 'SSL'; // Enable TLS encryption, `ssl` also accepted $mail->Port = 465; // TCP port to connect to $mail->isHTML(true); $mail->setFrom('api@zefix.silias.ch', 'Silias Zefix Export'); $mail->addAddress($emailAddress); $mail->addReplyTo('info@silias.ch', 'Silias KLG'); $mail->Subject = 'Ihr Export von Zefix ist bereit'; $mail->Body = 'Nutzen Sie den folgenden Link um ihre Daten herunterzuladen. Die Daten werden nach 48 Stunden automatisch von unserem Server gelöscht.\nhttps://zefix.silias.ch/'.$filename.''; if($mail->send()){ $status = "success"; $response = "Email is sent!"; } else{ $status = "failed"; $response = "Something is wrong:
" . $mail->ErrorInfo; } echo "Email status:".$status; echo "Email Response:".$response; } // Stop executing bevore reaching PHP Max Execution Time function convertcsvToXlsx(string $csvFile, string $xlsxFile) { $csvData = []; if (($handle = fopen($csvFile, "r")) !== false) { while (($data = fgetcsv($handle, 1000, ",")) !== false) { $csvData[] = $data; } fclose($handle); } else { echo "Failed to open $csvFile for reading."; } write_xlsxFile($xlsxFile, $csvData); } while($latesEndTime - time() > 60){ // If the directory for Tasks is already created if(is_dir($taskDir)) { $taskfiles = scandir($taskDir); $taskfiles = array_diff($taskfiles, array('.', '..')); sort($taskfiles); // if there are any taks which are older then min oldness. To be sure the file writing process is finished. if(count($taskfiles) > 0 && intval(explode("-", $taskfiles[0])[0]) + $minTaskOldness < time()) { $taskString = file_get_contents($taskDir.'/'.$taskfiles[0]); $task = json_decode($taskString, true); // if there are any requests to do, do the first if(count($task['requests']) > 0) { doRequest($task['requests'][0], str_replace(".json", ".csv", $downloadDir.'/'.$taskfiles[0]), $username , $password); echo "Request done"; echo "
"; array_shift($task['requests']); $taskString = json_encode($task); $taskfile = fopen($taskDir.'/'.$taskfiles[0], 'w'); if($taskfile){ fwrite($taskfile, $taskString); fclose($taskfile); } } // if there are no Requests left, send the E-Mail else { convertcsvToXlsx(str_replace(".json", ".csv", $downloadDir.'/'.$taskfiles[0]), str_replace(".json", ".xlsx", $downloadDir.'/'.$taskfiles[0])); unlink(str_replace(".json", ".csv", $downloadDir.'/'.$taskfiles[0])); sendEmail($task['email'], str_replace(".json", ".xlsx", $downloadDir.'/'.$taskfiles[0]), $smtppassword); unlink($taskDir.'/'.$taskfiles[0]); echo "Task File deleted"; echo "
"; } } else { // acutal Time - start time echo "nothing to do after: ".strval(time() - ($latesEndTime - $maxExecutionTime)); echo "sleeping 10 seconds"; echo "
"; sleep(10); } } } ?>