Я пытаюсь вывести данные, возвращаемые запросом MS SQL, в файл Excel или CSV с PHP.Я использовал скрипт в этом ответе и могу вывести файл ОК.Без строк заголовка (внизу моего кода) он сохраняется в структуре папок моего сервера, а не выводится в виде загрузки в браузер.
Если я добавляю строки заголовка, он выводится в файл CSV, но записывает HTML-код страницы в файл, а не в извлечение из базы данных!Я что-то пропустил?Я попытался запустить код на странице без HTML (только код PHP и SQL), но это все еще происходит.
// Give the file a suitable name:
$FileName= $PartNumber.".csv";
$fp = fopen($FileName, 'w');
// Connect to MS SQL server; the actual database is chosen in the form
// ConnSQL defined in inc/dbconn/config.php
ConnSQL($idDatabase);
// the query is a biggie; here it is:
require 'inc_sql.php';
// run it through the SQL server
$rstBOM = sqlsrv_query($GLOBALS['ConnSQL'], $sqlBOM);
while ($export= sqlsrv_fetch_array($rstBOM, SQLSRV_FETCH_ASSOC)) {
if (!isset($headings))
{
$headings = array_keys($export);
fputcsv($fp, $headings, ',', '"');
}
fputcsv($fp, $export, ',', '"');
}
// force download csv - exports HTML to CSV!
header("Content-type: application/force-download");
header('Content-Disposition: inline; filename="'.$FileName.'"');
header("Content-Transfer-Encoding: Binary");
header("Content-length: ". filesize($FileName));
header('Content-Type: application/excel');
header('Content-Disposition: attachment; filename="'.$FileName.'"');
fclose($fp);
Есть идеи, где я ошибаюсь, пожалуйста?