如何从php数组中导出不带引号的制表符分隔的txt文件


How to export a tab-separated txt file from php array without quotes

我用下面的代码为产品提要保存了一个以制表符分隔的文件。但是,我提交的提要要求字段不包含在引号中。有没有一种方法可以在字段中不加引号的情况下保存此文件。

$feed[]=array('Item','Description','Category');
$feed[]=array('1-1','Words describing item 1, for example.','Top Category > SubCategory1');
$feed[]=array('1-2','Words describing item 2.','Top Category > SubCategory2');
header('Content-type: text/tab-separated-values');
header("Content-Disposition: attachment;filename=bingproductfeed.txt");
$f  =   fopen('php://output', 'a');
foreach ($feed as $fields) {
    //$fields=str_replace('"','',$fields);
    //$fields=trim($fields,'"');
    fputcsv($f, $fields, "'t");
}
//Outputs:
//Item  Description Category
//1-1   "Words describing item 1, for example." "Top Category > SubCategory1"
//1-2   "Words describing item 2."  "Top Category > SubCategory2"
//I need:
//Item  Description Category
//1-1   Words describing item 1, for example.   Top Category > SubCategory1
//1-2   Words describing item 2.    Top Category > SubCategory2

我试着去掉引号,用空格代替,但没有成功。有没有一种方法可以做到这一点,这样我就可以在没有错误的情况下提交这个提要?

根据PHP手册,我认为您可以省略fopen行,只需在页面上直接回显您的输出。

php://output¶

php://output是一个只写流,允许您以与print和echo相同的方式写入输出缓冲区机制。

这样的东西:

$feed[]=array('Item','Description','Category');
$feed[]=array('1-1','Words describing item 1, for example.','Top Category > SubCategory1');
$feed[]=array('1-2','Words describing item 2.','Top Category > SubCategory2');
header('Content-type: text/tab-separated-values');
header("Content-Disposition: attachment;filename=bingproductfeed.txt");
foreach ($feed as $fields) {
    //$fields=str_replace('"','',$fields);
    //$fields=trim($fields,'"');
    echo implode("'t",$fields);
}