在CSV文件中导出会话变量。PHP

在CSV文件中导出会话变量。PHP,php,Php,我试图将会话数组中的一些数据导出为CSV,但当我在文件的开头包含会话_start()而不是创建可下载的文档时,它会将其回显到浏览器。我是否需要采取不同的方法,或者是否有办法解决这一问题?如果没有session_start(),它将创建并下载文件,但文件为空,因为缺少我的会话数组 header( "Content-Type: text/csv;charset=utf-8" ); header( "Content-Disposition: attachment;filename=\"

我试图将会话数组中的一些数据导出为CSV,但当我在文件的开头包含会话_start()而不是创建可下载的文档时,它会将其回显到浏览器。我是否需要采取不同的方法,或者是否有办法解决这一问题?如果没有session_start(),它将创建并下载文件,但文件为空,因为缺少我的会话数组

    header( "Content-Type: text/csv;charset=utf-8" );
    header( "Content-Disposition: attachment;filename=\"$filename\"" );
    header("Pragma: no-cache");
    header("Expires: 0");

    session_start(); 
    include $_SERVER['DOCUMENT_ROOT']."/Includes/object_one.php";
    include $_SERVER['DOCUMENT_ROOT']."/Includes/object_two.php";

    $fp= fopen('php://output', 'w');

    foreach ($_SESSION['data'] as $fields){
        fputcsv($fp, $fields);
    }
    fclose($fp);
    exit();
如果有帮助,我的数组采用以下格式:

$data = array(dataset1(array, of, data), dataset2(array, of, data), dataset#(array, of, data));

编辑:会话_Start似乎不是问题的原因,但包含的内容确实是问题的原因

这可能是标题问题。如果在header函数之前打印某些内容(例如由于错误的php标记关闭而导致文件包含的空格),则所有的header都不起作用。在声明标头之前,请尝试放置
ob_clean()
,并检查是否有效。

使用浏览器开发控制台找出两次尝试之间发送的标头的差异。这就是你感兴趣的。