#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);