PHP - 导出CSV - 第一个案例无法识别

时间:2014-06-17 10:51:55

标签: php wordpress csv

我正在尝试为wordpress做一个导出插件。这个插件在csv中导出一个自定义类型和另一个插件(不是由我创建)我可以导入csv。

问题来自我的插件,当我想导入我导出的文件时,第一种情况无法识别。

我需要将文件的编码(使用notepad ++)更改为没有BOM的UTF8,并且第一种情况有效。

删除所有不必要的代码。

    $data = array();
$attribut = array();

$ligne_csv = array(); 
$attribut[]="post_title";
$attribut[]="post_content";
$attribut[]="post_status";

$data[0] = $attribut;
$ligne_csv[]="bob";
$ligne_csv[]="richard";
$ligne_csv[]="publish";
$data[1]=$ligne_csv;

    header('Content-Type: application/csv');
    header('Content-Disposition: attachment; filename=test.csv');

$outstream = fopen("php://output", 'w');
fputcsv($outstream, $data[0], ';');
fputcsv($outstream, $data[1], ';');

fclose($outstream);

在导入器中,尝试像这样进行比较

if (in_array($data_row[$c],array_keys($post_type->default_options)))

和" post_title"不在" array_keys"当他处于第一种情况时。

谢谢。

编辑:如果我使用一个小黑客并将第一列放空($ attribut [] ="";),一切都还可以,但也许有另一种方法

1 个答案:

答案 0 :(得分:0)

这有助于我。这个标题

标题('Content-Encoding:UTF-8');
header('Content-type:text / csv; charset = UTF-8');
header(“Content-Disposition:attachment; filename = file.csv”);
标题(“Pragma:no-cache”);
标题(“过期:0”);
header('Content-Transfer-Encoding:binary');