Мне удалось сохранить файл с разделителями табуляции для канала продукта с кодом ниже. Тем не менее, канал, который я отправляю, требует, чтобы поля не были заключены в кавычки. Есть ли способ сохранить этот файл без кавычек в полях.
$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);
}
Других решений пока нет …