数据打印到浏览器而不是Wordpress中的文件

时间:2017-10-15 21:28:18

标签: wordpress file csv printing download

我为自己的wordpress网站创建了一个自定义页面模板,该模板从自定义表中读取数据,对其进行操作,然后放入表单中。这显示得很好。

代码所做的下一件事就是调用一个函数,然后该函数将获取表中的所有相同数据,并将其放入用户可以打开或下载的CSV文件中。

然而,正在发生的事情是,它不是可以下载的文件,而是简单地转储到表单下面的页面中。

这是应该打印文件的函数的代码。它是一个带有两个数组(标题和主要内容)和分隔符的函数。在此代码发出之前调用打开文件。 (php:// memory,w)

    // Add report title
    fputcsv($f, (array)$headers_array[0], $delimiter);

    //add the date
    fputcsv($f, (array) $headers_array[1], $delimiter);

    //add notes
    fputcsv($f, (array) $headers_array[2], $delimiter);

    //labels from the document
    $headers_temp = explode (",",$headers_array[3]);
    //var_dump ($headers_temp);
    fputcsv ($f, $headers_temp, $delimiter);

    //headers that actually label the columns
    $headers_temp = explode (",",$headers_array[4]);
    //var_dump ($headers_temp);
    fputcsv ($f, $headers_temp, $delimiter);

    foreach ($array as $line) 
    { 
        // generate csv lines from the inner arrays
        //var_dump ($line);
        fputcsv($f, $line, $delimiter); 
    }
    // reset the file pointer to the start of the file
    fseek($f, 0);
    // tell the browser it's going to be a csv file
    header('Content-Type: application/csv; charset=utf-8');
    // tell the browser we want to save it instead of displaying it
    header('Content-Disposition: attachment; filename= report_for_"'.$headers_array[1] .'".csv;');
    // make php send the generated csv lines to the browser
    fpassthru($f);

当我不在wordpress环境中时(我正在调整纯PHP / HTML中的mycode以将其合并到网站中),此代码完全 ,但在Wordpress中不起作用。是否有一个对象或wordpress函数我应该使用而不是fopen?

由于

0 个答案:

没有答案