Удалить лишнюю запятую после строки - PullRequest
0 голосов
/ 19 марта 2011

У меня много данных в файле CSV. Я написал код для извлечения только столбца 1 и поместил его в текстовый файл:

fwrite($file2, $data[0].',');

Теперь создается TXT-файл со всеми значениями, разделенными запятой. Однако после прочтения последнего значения была добавлена ​​запятая

Мне это не нужно, потому что когда я использовал foreach($splitcontents as $x=> $y), используя разделитель запятых, он читает значение мусора в конце из-за лишней запятой.

Как мне убрать или избежать запятой в конце?

Ответы [ 3 ]

1 голос
/ 19 марта 2011

Вместо самостоятельной сборки CSV-файла вы можете использовать fputcsv () , который переводит его в правильный формат:

while (...) {
    fputcsv($file2, array($data[0], $data[1], $data[22])  );

Второй параметр должен быть массивом.Если вам действительно нужен только один столбец, оставьте остальные.

Также для чтения файлов обратно проверьте fgetcsv().Это может упростить ваш подход foreach + $ splitstring.

1 голос
/ 19 марта 2011

Одним из способов решения этой проблемы является использование rtrim($data, ',') для данных, которые вы загружаете из второго файла перед его разбиением. Это удалит запятую.

Если вы хотите исправить сам файл, вы можете сделать это:

ftruncate($file2, ftell($file2)-1);

Вы должны сделать это как раз перед тем, как позвонить fclose()

1 голос
/ 19 марта 2011

Используйте fputcsv() вместо того, чтобы искажать его.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...