"; $response = sendAPICompanySearchRequest($username, $password, $data); $companyArray = json_decode($response, true); // TODO implement $companyData = [ ['John', 30, 'New York'], ['Alice', 25, 'Los Angeles'], ['Bob', 35, 'Chicago'], ]; $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) { // TODO change headers 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) { echo "sending ".$filename." too ".$emailAddress; } // Stop executing bevore reaching PHP Max Execution Time function convertcsvToXlsx(string $csvFile, string $xslxFile) { $objReader = PHPExcel_IOFactory::createReader('CSV'); // If the files uses a delimiter other than a comma (e.g. a tab), then tell the reader $objReader->setDelimiter("\t"); // If the files uses an encoding other than UTF-8 or ASCII, then tell the reader $objReader->setInputEncoding('UTF-16LE'); $objPHPExcel = $objReader->load($csvFile); $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5'); $objWriter->save($xslxFile); } 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 1 Minutes. To be sure the file writing process is finished. if(count($taskfiles) > 0 && intval(explode("-", $taskfiles[0])[0]) + 60 < 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])); echo "Email sent"; echo "
"; 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); } } } ?>