function code_export() { $fields_to_export = array('SystemName', 'StandardName', 'LongName', 'DBName', 'ShortName', 'MaximumLength', 'DataType', 'Precision', 'Searchable', 'Interpretation', 'Alignment', 'UseSeparator', 'EditMaskID', 'LookupName', 'MaxSelect', 'Units', 'Index', 'Minimum', 'Maximum', 'Default', 'Required', 'SearchHelpID', 'Unique', 'MetadataEntryID', 'ModTimeStamp', 'ForeignKeyName', 'ForeignField', 'InKeyIndex'); if ($_SESSION['logged_in'] != "yes") { echo "Not logged in."; exit; } // set things up $rets = new phRETS(); $rets->AddHeader("Accept", "*/*"); $rets->AddHeader("RETS-Version", "RETS/{$_SESSION['rets_version']}"); $rets->AddHeader("User-Agent", $_SESSION['user_agent']); $rets->SetParam("compression_enabled", true); if ($_SESSION['force_basic'] == "true") { $rets->SetParam("force_basic_authentication", true); } // make first connection $connect = $rets->Connect($_SESSION['login_url'], $_SESSION['username'], $_SESSION['password'], $_SESSION['ua_pwd']); if (!$connect) { $error_details = $rets->Error(); $error_text = strip_tags($error_details['text']); $error_type = strtoupper($error_details['type']); show_error_page("<center><span style='color:red;font-weight:bold;'>{$error_type} ({$error_details['code']}) {$error_text}</span></center>"); } $table = $rets->GetMetadataTable($_REQUEST['r_resource'], $_REQUEST['r_class']); $csv = fopen('php://temp/maxmemory:' . 5 * 1024 * 1024, 'r+'); $output_list = array(); foreach ($fields_to_export as $fi) { $output_list[] = $fi; } fputcsv($csv, $output_list); foreach ($table as $field) { $output_field = array(); foreach ($fields_to_export as $fi) { if (isset($field[$fi])) { $output_field[$fi] = $field[$fi]; } } fputcsv($csv, $output_field); } rewind($csv); $output = stream_get_contents($csv); $filename = strtolower("rets-metadata-{$_REQUEST['r_resource']}-{$_REQUEST['r_class']}.csv"); header("Content-type: application/octet-stream"); header("Content-Disposition: attachment; filename=\"{$filename}\""); echo $output; }