Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Uso o seguinte script para exportar uma tabela mysql no formato csv
<?php
require_once('../connecting.php');
include 'timeout.php';
$sql = "SELECT nome, email FROM newsletter WHERE status = 1 ORDER BY id DESC";
$results = $conn->query($sql);
$filename = "newsletter_".time().".csv";
$handle = fopen($filename, 'w+');
fputcsv($handle, array('Nome','Email'));
foreach($results as $row)
{
fputcsv($handle, array(utf8_decode($row['nome']), $row['email']));
}
fclose($handle);
header("Content-Type: text/csv");
header("Content-Disposition: attachment; filename=\"$filename\"");
?>
Mas o arquivo está vazio. Se eu alterar o header para:
header('Content-Type: application/csv');
header("Location: $filename");
O arquivo csv é mostrado no navegador, mas o download não é feito.Paulo, continua vazio.
Tenta assim:
informando a saida antes de exibir/escrever algo na tela.
Funciona assim quando vou exportar em .xls
require_once('../connecting.php');
include 'timeout.php';
$sql = "SELECT nome, email FROM newsletter WHERE status = 1 ORDER BY id DESC";
$results = $conn->query($sql);
$filename = "newsletter_".time().".csv";
header("Content-Type: text/csv");
header("Content-Disposition: attachment; filename=\"$filename\"");
$handle = fopen($filename, 'w+');
fputcsv($handle, array('Nome','Email'));
foreach($results as $row)
{
fputcsv($handle, array(utf8_decode($row['nome']), $row['email']));
}
fclose($handle);Cara, também não deu certo. Arquivo vazio.
Vou olhar. Obrigado.
Como estou usando PDO, preciso alterar alguma linha do script?
Desculpa, não uso PDO.
header("Content-type: application/csv");
// Como será gravado o arquivo
header("Content-Disposition: attachment; filename=$filename");