mirror of
https://github.com/Deutscher-Tischfussballbund/com_sportsmanager.git
synced 2026-06-10 06:27:52 +00:00
Merge pull request #248 from Deutscher-Tischfussballbund/sportsmanager2-issue247
remove delimiter on csv-export
This commit is contained in:
@@ -112,27 +112,58 @@ function renderTemplate($template, $vars = []): string
|
||||
);
|
||||
}
|
||||
|
||||
function CSVfromArray($rows,$dateiname)
|
||||
function exportCSV(array $rows, string $dateiname): void
|
||||
{
|
||||
$dateiname = bereinigterDateiname($dateiname);
|
||||
ob_end_clean(); // Wegen UTF-8-Zeichen, die in der ausgabe vorhanden sind
|
||||
Header("Content-Type: text/x-csv");
|
||||
Header('Expires: ' . gmdate('D, d M Y H:i:s') . ' GMT');
|
||||
Header('Content-Disposition: attachment; filename="' . $dateiname . '"');
|
||||
Header("Pragma: no-cache");
|
||||
|
||||
$data = "";
|
||||
$trennzeichen = ";";
|
||||
$header = "";
|
||||
|
||||
$header .= implode(';', array_keys($rows[0]));
|
||||
foreach ($rows as $row) {
|
||||
$data .= implode(';', $row)."\n";
|
||||
if (empty($rows)) {
|
||||
// Keine Daten → nichts exportieren
|
||||
return;
|
||||
}
|
||||
|
||||
echo $header . "\n" . utf8_decode(trim($data));
|
||||
// Dateiname absichern
|
||||
$dateiname = bereinigterDateiname($dateiname);
|
||||
|
||||
die();
|
||||
// Output Buffer nur beenden, wenn aktiv
|
||||
if (ob_get_level() > 0) {
|
||||
ob_end_clean();
|
||||
}
|
||||
|
||||
// CSV-Header für Browser
|
||||
header('Content-Type: text/csv; charset=UTF-8');
|
||||
header('Content-Disposition: attachment; filename="' . $dateiname . '"; filename*=UTF-8\'\'' . rawurlencode($dateiname));
|
||||
header('Cache-Control: no-store, no-cache, must-revalidate');
|
||||
header('Pragma: no-cache');
|
||||
header('Expires: 0');
|
||||
|
||||
// BOM für Excel
|
||||
echo "\xEF\xBB\xBF";
|
||||
|
||||
// Stream öffnen
|
||||
$out = fopen('php://output', 'w');
|
||||
|
||||
$delimiter = ';';
|
||||
$enclosure = '"';
|
||||
$escape = '\\';
|
||||
|
||||
// Header-Zeile: keys aus erstem Datensatz (Array oder stdClass)
|
||||
$firstRow = $rows[0] instanceof stdClass ? (array) $rows[0] : $rows[0];
|
||||
$header = array_keys($firstRow);
|
||||
fputcsv($out, $header, $delimiter, $enclosure, $escape);
|
||||
|
||||
// Datenzeilen
|
||||
foreach ($rows as $row) {
|
||||
$rowArray = $row instanceof stdClass ? (array) $row : $row;
|
||||
|
||||
// Sicherstellen, dass alle Header-Spalten vorhanden sind
|
||||
$line = [];
|
||||
foreach ($header as $key) {
|
||||
$line[] = $rowArray[$key] ?? '';
|
||||
}
|
||||
|
||||
fputcsv($out, $line, $delimiter, $enclosure, $escape);
|
||||
}
|
||||
|
||||
fclose($out);
|
||||
exit;
|
||||
}
|
||||
|
||||
function adminUebersicht(): void
|
||||
@@ -5041,7 +5072,7 @@ function adminEditSpielverlegung(): void
|
||||
$zeile++;
|
||||
}
|
||||
|
||||
CSVfromArray($rows,"Spielverlegungen.csv");
|
||||
exportCSV($rows,"Spielverlegungen.csv");
|
||||
}
|
||||
|
||||
function adminSpielverlegungMailen(): void
|
||||
@@ -12240,41 +12271,8 @@ function adminBegegnungenExportForm(): void
|
||||
}
|
||||
|
||||
$dateiname .= ".csv";
|
||||
$dateiname = bereinigterDateiname($dateiname);
|
||||
ob_end_clean(); // Wegen UTF-8-Zeichen, die in der ausgabe vorhanden sind
|
||||
Header("Content-Type: text/x-csv");
|
||||
Header('Expires: ' . gmdate('D, d M Y H:i:s') . ' GMT');
|
||||
Header('Content-Disposition: attachment; filename="' . $dateiname . '"');
|
||||
Header("Pragma: no-cache");
|
||||
|
||||
$data = "";
|
||||
$trennzeichen = ";";
|
||||
$spalte = 0;
|
||||
$header = "";
|
||||
|
||||
foreach ($rows[0] as $field => $value) {
|
||||
if ($spalte != 0) {
|
||||
$header .= $trennzeichen;
|
||||
}
|
||||
$header .= $field;
|
||||
$spalte++;
|
||||
}
|
||||
foreach ($rows as $row) {
|
||||
$line = '';
|
||||
$spalte = 0;
|
||||
foreach ($row as $value) {
|
||||
if ($spalte != 0) {
|
||||
$line .= $trennzeichen;
|
||||
}
|
||||
$line .= $value;
|
||||
$spalte++;
|
||||
}
|
||||
$data .= trim($line) . "\n";
|
||||
}
|
||||
|
||||
echo $header . "\n" . utf8_decode($data);
|
||||
|
||||
die();
|
||||
exportCSV($rows, $dateiname);
|
||||
}
|
||||
|
||||
function adminEditTurnier(): void
|
||||
|
||||
Reference in New Issue
Block a user