Как вставить запятую в файл, разделенный запятыми

#php #excel #file #csv

#php #excel #файл #csv

Вопрос:

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

Как мне включить строку с запятой в файл, разделенный запятыми.

Спасибо

Ответ №1:

Поставьте знаки препинания ( " ) вокруг строки. Если у вас также есть » в строке, экранируйте их путем удвоения. Пример строки:

 "hello world, I'll call you ""Earth""", 4, 2, "another string"
  

Итак, если у вас есть строка в переменной $field, нормализуйте поле следующим образом:

 $field = '"'. str_replace('"', '""', $field) .'"';
  

Ответ №2:

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

1. 1 Сработает ли это, если я хочу предложить пользователю загрузить файл, когда файл будет успешно создан? Я проверил ссылку выше, там есть пример, который создает файл на жестком диске, но как предложить пользователю загрузить этот файл как созданный. Спасибо

Ответ №3:

Обычный способ — заключить поле в кавычки:

 id,name,position
1,"Maxwell, Sam",CTO
2,Bob,Techie
  

Ответ №4:

Это зависит от того, какая программа будет считывать файл.

Если анализатор написан как конечный автомат, запятые не должны обрабатываться как разделители, когда строка заключена в кавычки.