fwrite динамические значения с запятыми в Excel

#php #fwrite

#php #fwrite

Вопрос:

Я унаследовал сайт и нуждаюсь в некоторой помощи. В php есть функция fwrite(), которая записывает csv-файл, используя информацию из базы данных. Одна из вещей, которые я хочу написать, — это описание продукта. Все описания имеют запятые, и когда csv видит запятые, он запускает новую ячейку, разбивая описание на множество разных ячеек. Я бы предпочел, чтобы все описание было в одной ячейке. Я могу заставить его сделать это, если я str_replace() заменю запятые на что-то другое, так что проблема не в этой части кода.

Каков наилучший способ (если это вообще возможно) записать значение, содержащее запятые, в файл csv?

Прямо сейчас это выглядит примерно так:

 $orderrecord = '"'.$row['product_description_that_has_commas'].'"';

        $orderrecord .= "rn";
        $ofl = fopen($exportordersfilename, 'ab');
        fwrite($ofl, $orderrecord);
        fclose($ofl);
  

Комментарии:

1. Включение описания между » и запятыми не создаст проблем.

2. Вы имеете в виду, например, $row[«product_description»]?

3. ДА. Я только что протестировал открытие csv с помощью openoffice, и все работает нормально.

Ответ №1:

Посмотрите на вызываемую функцию PHP fputcsv() .

 <?php

$fh = fopen('file', 'w');
fputcsv($fh, array($description_with_quotes, 'field_two', '...'));
fclose($fh);