Как экспортировать TXT-файл с разделителями табуляции из массива php без кавычек

Мне удалось сохранить файл с разделителями табуляции для канала продукта с кодом ниже. Тем не менее, канал, который я отправляю, требует, чтобы поля не были заключены в кавычки. Есть ли способ сохранить этот файл без кавычек в полях.

$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

Я попытался обрезать кавычки и заменить их пробелами, но не повезло. Есть ли способ сделать это, чтобы я мог отправить этот канал без ошибок?

1

Решение

На основе Руководство по 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);
}
3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]