#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:
Это зависит от того, какая программа будет считывать файл.
Если анализатор написан как конечный автомат, запятые не должны обрабатываться как разделители, когда строка заключена в кавычки.