我在插件页面中使用了一个简单的数组到CSV导出函数来生成报告。
当我运行这段代码时,我得到一个错误,它将导出整个html内容沿着我预期的数组。
下面是我的代码:
function convert_to_csv($input_array, $output_file_name, $delimiter)
{
clearstatcache();
/** open raw memory as file, no need for temp files */
$temp_memory = fopen('php://memory', 'w');
/** loop through array */
foreach ($input_array as $line) {
/** default php csv handler **/
fputcsv($temp_memory, $line, $delimiter);
}
//echo '<pre>';
//print_r($temp_memory); exit;
/** rewrind the "file" with the csv lines **/
fseek($temp_memory, 0);
/** modify header to be downloadable csv file **/
header('Content-Type: application/csv');
header('Content-Disposition: attachement; filename="' . $output_file_name . '";');
/** Send file to browser for download */
fpassthru($temp_memory);
}
/** Array to convert to csv */
$array_to_csv = Array(
Array(12566,
'Enmanuel',
'Corvo'
),
Array(56544,
'John',
'Doe'
),
Array(78550,
'Mark',
'Smith'
)
);
clearstatcache();
convert_to_csv($array_to_csv, 'report.csv', ',');
字符串
5条答案
按热度按时间6tqwzwtp1#
我希望你过得很好。
解决你问题的方法是。
我们在init上添加了一个动作,因为我们不想从我们的网站上获取任何HTML或其他数据,而wp_loaded之后的最高钩子是init,并添加exit以不从网站获取其他信息。
字符串
问候
赛义德·阿里·艾哈迈德
4urapxun2#
我猜WP在这个函数被调用后会继续正常的操作,所以你会在CSV之后得到HTML模板输出。在
fpassthru
之后放一个exit
语句应该就可以了,但是你需要注意的是,这并没有打乱WordPress在每个页面响应结束时所做的任何其他事情。我对WP不够熟悉,无法确定,但wp_die() function的文档建议您可以使用PHPexit
,而不会有太多问题falq053o3#
您可以使用此代码生成扩展名为.xlsx的excel文件
字符串
这个代码为我工作……
c86crjj04#
在导出函数的顶部尝试此操作。
字符串
mrphzbgm5#
最简单的方法来生成csv文件,而不保存在服务器上
字符串