/** * ExportStats * For a given Split Test Campaign save the data to a file on the filesystem. * * @param Array $stats Split Test Campaign send statistic for a single campaign send as derived from this GetStats API method. * * @return String $exportFileName The name of the file written to disk. */ private static function ExportStats($stats, $jobids, $splitName = null) { $dateFormat = self::getDateFormat(); // if no split campaign name has been passed use the name of the first one we find $filename = $splitName == null ? $stats[$jobids[0]]['splitname'] : $splitName; $dateStr = date('Y-m-d_His'); $temp = str_replace(" ", "_", strtolower($filename)); $filenameSafe = ''; for ($i = 0; $i < strlen($temp); $i++) { if (preg_match('([0-9]|[a-z]|_)', $temp[$i])) { $filenameSafe = $filenameSafe . $temp[$i]; } } $exportFileName = $filenameSafe . '__' . $dateStr . '.csv'; $path = TEMP_DIRECTORY . '/'; $headers = implode(',', array('Newsletter Name', 'Split Test Name', 'Split Type', 'Start Sending', 'Finished Sending', 'Recipients', 'Total Opened', 'Unique Opened', '% Opened', 'Recipients who Clicked Links', '% Recipients who Clicked', 'Hard Bounced', 'Soft Bounced', 'Total Bounced', '% Bounced', 'Unsubscribed', '% Unsubscribed')); $file = $path . $exportFileName; // we shouldn't be overwriting anything becuase there is a timestamp in the filename - but just in case so as we don't create a fatal error if (file_exists($file)) { unlink($file); } $f = fopen($file, 'w'); fwrite($f, $headers); fwrite($f, "\n"); while (list($job_id, $statistics) = each($stats)) { if (in_array($job_id, $jobids)) { while (list($id, $data) = each($statistics['campaigns'])) { fwrite($f, $data['campaign_name'] . ','); fwrite($f, $statistics['splitname'] . ','); fwrite($f, $statistics['splittype'] . ','); fwrite($f, SendStudio_Functions::PrintDate($statistics['starttime'], $dateFormat) . ','); fwrite($f, SendStudio_Functions::PrintDate($statistics['finishtime'], $dateFormat) . ','); fwrite($f, $data['stats_newsletters']['recipients'] . ','); fwrite($f, $data['stats_newsletters']['emailopens'] . ','); fwrite($f, $data['stats_newsletters']['emailopens_unique'] . ','); fwrite($f, $data['stats_newsletters']['percent_emailopens_unique'] . ','); fwrite($f, $data['stats_newsletters']['linkclicks_unique'] . ','); fwrite($f, $data['stats_newsletters']['percent_linkclicks_unique'] . ','); fwrite($f, $data['stats_newsletters']['bouncecount_hard'] . ','); fwrite($f, $data['stats_newsletters']['bouncecount_soft'] . ','); fwrite($f, $data['stats_newsletters']['bouncecount_total'] . ','); fwrite($f, $data['stats_newsletters']['percent_bouncecount_total'] . ','); fwrite($f, $data['stats_newsletters']['unsubscribecount'] . ','); fwrite($f, $data['stats_newsletters']['percent_unsubscribecount']); fwrite($f, "\n"); } } } fclose($f); return $exportFileName; }