$config['memory_limit']) {
CSVOutput($t);
$t = '';
}
$time_now = time();
if ($time_start >= $time_now + 30) {
$time_start = $time_now;
header('X-MODPing: Pong');
}
}
}
}
CSVOutput($t, 1);
}
function CSVOutput($str, $last = 0)
{
global $sql, $config;
if (0 == $sql['export']['sendfile']) {
//Display
echo $str;
} else {
if ('' == $sql['export']['header_sent']) {
if (1 == $sql['export']['compressed'] & !function_exists('gzencode')) {
$sql['export']['compressed'] = 0;
}
if ($sql['export']['format'] < 4) {
$file = $sql['export']['db'].((1 == $sql['export']['compressed']) ? '.csv.gz' : '.csv');
} elseif (4 == $sql['export']['format']) {
$file = $sql['export']['db'].((1 == $sql['export']['compressed']) ? '.xml.gz' : '.xml');
} elseif (5 == $sql['export']['format']) {
$file = $sql['export']['db'].((1 == $sql['export']['compressed']) ? '.html.gz' : '.html');
}
$mime = (0 == $sql['export']['compressed']) ? 'x-type/subtype' : 'application/x-gzip';
header('Content-Disposition: attachment; filename="'.$file.'"');
header('Pragma: no-cache');
header('Content-Type: '.$mime);
header('Expires: '.gmdate('D, d M Y H:i:s').' GMT');
$sql['export']['header_sent'] = 1;
}
if (1 == $sql['export']['compressed']) {
echo gzencode($str);
} else {
echo $str;
}
}
}
function DoImport()
{
global $sql, $lang;
$r = '';
$zeilen = count($sql['import']['csv']) - $sql['import']['namefirstline'];
$sql['import']['first_zeile'] = explode($sql['import']['trenn'], $sql['import']['csv'][0]);
$importfelder = count($sql['import']['first_zeile']);
if (0 == $sql['import']['tablecreate']) {
$res = mod_query('show fields FROM '.$sql['import']['table']);
$tabellenfelder = mysqli_num_rows($res);
if ($importfelder != $tabellenfelder) {
$r .= '
'.sprintf($lang['L_CSV_FIELDCOUNT_NOMATCH'], $tabellenfelder, $importfelder);
} else {
$ok = 1;
}
} else {
$ok = ImportCreateTable();
if (0 == $ok) {
$r .= '
'.sprintf($lang['L_CSV_ERRORCREATETABLE'], $sql['import']['table']);
}
}
if (1 == $ok) {
$insert = '';
if (1 == $sql['import']['emptydb'] && 0 == $sql['import']['tablecreate']) {
MOD_DoSQL('TRUNCATE '.$sql['import']['table'].';');
}
$sql['import']['lines_imported'] = 0;
$enc = ('' == $sql['import']['enc']) ? "'" : '';
$zc = '';
for ($i = $sql['import']['namefirstline']; $i < $zeilen + $sql['import']['namefirstline']; ++$i) {
//Importieren
$insert = 'INSERT INTO '.$sql['import']['table'].' VALUES(';
if (1 == $sql['import']['createindex']) {
$insert .= "'', ";
}
$zc .= trim(rtrim($sql['import']['csv'][$i]));
//echo "Zeile $i: $zc
";
if ('' != $zc) { // && substr($zc,-1)== $enc) {
$zeile = explode($sql['import']['trenn'], $zc);
for ($j = 0; $j < $importfelder; ++$j) {
$a = ('' == $zeile[$j] && '' == $enc) ? "''" : $zeile[$j];
$insert .= $enc.$a.$enc.(($j == $importfelder - 1) ? ");\n" : ',');
}
MOD_DoSQL($insert);
++$sql['import']['lines_imported'];
$zc = '';
}
}
$r .= sprintf($lang['L_CSV_FIELDSLINES'], $importfelder, $sql['import']['lines_imported']);
}
$r .= '';
return $r;
}
function ImportCreateTable()
{
global $sql, $lang, $db, $config;
$tbl = [];
$sql = "SHOW TABLES FROM $db";
$tabellen = mod_query($sql);
// while ($row = mysqli_fetch_row($num_tables))
while ($row = mysqli_fetch_row($tabellen)) {
$tbl[] = strtolower($row[0]);
}
$i = 0;
$sql['import']['table'] = $sql['import']['table'].$i;
while (in_array($sql['import']['table'], $tbl)) {
$sql['import']['table'] = substr($sql['import']['table'], 0, strlen($sql['import']['table']) - 1).++$i;
}
$create = 'CREATE TABLE `'.$sql['import']['table'].'` ('.((1 == $sql['import']['createindex']) ? '`import_id` int(11) unsigned NOT NULL auto_increment, ' : '');
if ($sql['import']['namefirstline']) {
for ($i = 0; $i < count($sql['import']['first_zeile']); ++$i) {
$create .= '`'.$sql['import']['first_zeile'][$i].'` VARCHAR(250) NOT NULL, ';
}
} else {
for ($i = 0; $i < count($sql['import']['first_zeile']); ++$i) {
$create .= '`FIELD_'.$i.'` VARCHAR(250) NOT NULL, ';
}
}
if (1 == $sql['import']['createindex']) {
$create .= 'PRIMARY KEY (`import_id`) ';
} else {
$create = substr($create, 0, strlen($create) - 2);
}
$create .= ') '.((MOD_NEW_VERSION) ? 'ENGINE' : 'TYPE')."=MyISAM COMMENT='imported at ".date('l dS of F Y H:i:s A')."'";
$res = mysqli_query($config['dbconnection'], $create) || exit(SQLError($create, mysqli_error($config['dbconnection'])));
return 1;
}
function ExportXML()
{
global $sql, $config;
$tab = "\t";
$level = 0;
$t = ''."\n".''."\n";
$sqlt = 'SHOW Fields FROM `'.$sql['export']['db'].'`.`'.$sql['export']['tables'][$table].'`;';
$res = mod_query($sqlt);
if ($res) {
$numfields = mysqli_num_rows($res);
if (1 == $sql['export']['xmlstructure']) {
$t .= str_repeat($tab, $level++).'
'."\n";
}
$t .= str_repeat($tab, --$level).'