2015-04-06 5 views
1

Мне удалось сохранить файл с разделителями табуляции для фида продукта с помощью кода ниже. Однако, подача, которую я отправляю, требует, чтобы поля не были заключены в кавычки. Есть ли способ сохранить этот файл без кавычек в полях.Как экспортировать 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

Я хотел бы посмотреть на "корпус" ... http://php.net/manual/en/function.fputcsv.php – dbinns66

ответ

2

На основании PHP manual я бы сказал, что вы можете опустить линию fopen и просто эхо-выход непосредственно на странице.

PHP: // выход ¶

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"); 
foreach ($feed as $fields) { 
    //$fields=str_replace('"','',$fields); 
    //$fields=trim($fields,'"'); 
    echo implode("\t",$fields); 
} 
+0

Ну, это работает отлично , Спасибо! – Rob