CSV bestand via header
PHP-ers,
ik wil een CSV bestand aanbieden in een admindeel van een site die ik momenteel maak. Ik heb deze code:
Het CSV bestand wordt keurig aangemaakt en opent ook in Excel als ik het via FTP download. Echter, als ik het via de browser rechtstreeks probeer te openen, geeft Excel de melding: "Kan het bestand niet lezen".
Iemand enig idee wat ik over het hoofd zie?
ik wil een CSV bestand aanbieden in een admindeel van een site die ik momenteel maak. Ik heb deze code:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?php
ini_set ('display_errors', 1);
error_reporting (E_ALL);
require '../../classes/class.core.php';
require '../../classes/class.database.php';
require 'authenticatie.php';
$sql = "
SELECT id, email, password, name, company, division, jobtitle, datumtijd
FROM apn_registreren
";
if ($db->query ($sql)) {
$csv = '';
while ($row = $db->fetch ()) {
$csv .= implode (';', $row);
$csv .= "\r\n";
}
$fp = fopen ('accounts.csv', 'wb');
fwrite ($fp, $csv, strlen ($csv));
fclose ($fp);
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename="accounts.csv"');
}
?>
ini_set ('display_errors', 1);
error_reporting (E_ALL);
require '../../classes/class.core.php';
require '../../classes/class.database.php';
require 'authenticatie.php';
$sql = "
SELECT id, email, password, name, company, division, jobtitle, datumtijd
FROM apn_registreren
";
if ($db->query ($sql)) {
$csv = '';
while ($row = $db->fetch ()) {
$csv .= implode (';', $row);
$csv .= "\r\n";
}
$fp = fopen ('accounts.csv', 'wb');
fwrite ($fp, $csv, strlen ($csv));
fclose ($fp);
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename="accounts.csv"');
}
?>
Het CSV bestand wordt keurig aangemaakt en opent ook in Excel als ik het via FTP download. Echter, als ik het via de browser rechtstreeks probeer te openen, geeft Excel de melding: "Kan het bestand niet lezen".
Iemand enig idee wat ik over het hoofd zie?
Edit:
Opgelost. Het moest zo:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<?php
ini_set ('display_errors', 1);
error_reporting (E_ALL);
require '../../classes/class.core.php';
require '../../classes/class.database.php';
require 'authenticatie.php';
$sql = "
SELECT id, email, password, name, company, division, jobtitle, datumtijd
FROM apn_registreren
";
if ($db->query ($sql)) {
$csv = '';
while ($row = $db->fetch ()) {
$csv .= implode (';', $row);
$csv .= "\r\n";
}
$fp = fopen ('accounts.csv', 'wb');
fwrite ($fp, $csv, strlen ($csv));
fclose ($fp);
header('Content-type: csv/txt');
header('Content-Disposition: attachment; filename="accounts.csv"');
readfile('accounts.csv');
}
?>
ini_set ('display_errors', 1);
error_reporting (E_ALL);
require '../../classes/class.core.php';
require '../../classes/class.database.php';
require 'authenticatie.php';
$sql = "
SELECT id, email, password, name, company, division, jobtitle, datumtijd
FROM apn_registreren
";
if ($db->query ($sql)) {
$csv = '';
while ($row = $db->fetch ()) {
$csv .= implode (';', $row);
$csv .= "\r\n";
}
$fp = fopen ('accounts.csv', 'wb');
fwrite ($fp, $csv, strlen ($csv));
fclose ($fp);
header('Content-type: csv/txt');
header('Content-Disposition: attachment; filename="accounts.csv"');
readfile('accounts.csv');
}
?>
Gewijzigd op 01/01/1970 01:00:00 door Jan Koehoorn
Gesponsorde koppelingen:
Ik zou denken dat er dan iets niet in orde is met je headers aangezien je die bij de directe aanroep wel mee stuurt maar die er niet bij opgeslagen worden.
Moet je de gegevens niet ook direct printen?
Dus na de header regels nog een echo $csv;?
Moet je de gegevens niet ook direct printen?
Dus na de header regels nog een echo $csv;?
toevoeging:
Reactie op je oplossing, is een echo/print van $csv niet sneller dan het weer uitlezen van het bestand?
Gewijzigd op 01/01/1970 01:00:00 door TJVB tvb



