Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
2 / 2 / 0
Регистрация: 15.04.2019
Сообщений: 215

Средствами php сменить кодировку csv файла

19.08.2022, 08:28. Показов 812. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть csv файл сформированный средствами php. В LibreOffice Calc открывается корректно, таблицей, в Excel тоже таблицей, но проблемы с кодировкой. Подскажите, кто знает, как средствами php можно устранить проблему.

Добавлено через 21 минуту
Я делал так:
PHP
1
2
3
$file_string = file_get_contents ("table.csv");
$file_string = iconv ("UTF-8", "WINDOWS-1251", $file_string);
file_put_contents ("table.csv", $file_string);
Кириллический текст при открытии в excel отображается корректно, но нет таблицы, все через запятые, в первом столбце.

Добавлено через 22 минуты
Желательно сделать не с помощью PHPExcel.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
19.08.2022, 08:28
Ответы с готовыми решениями:

Конвертация csv в xml средствами php
Доброго времени. Подскажите как корректно сконвертировать файл CSV в формат XML. Есть файл на входе вида: Марка Модель ...

Как узнать кодировку файла средствами php?
Как узнать кодировку файла средствами php? Добавлено через 1 час 57 минут В файле 1.txt кирилица, вытаскивать нужно функцией...

Сменить кодировку файла через командную строку
Сижу на работе и доступа к интернету нет. Тут есть программка которая кое что считает и выдает расчет в файл но не в той кодировке! ...

5
 Аватар для Zhbert
563 / 60 / 7
Регистрация: 27.03.2020
Сообщений: 186
19.08.2022, 09:02
CSV подразумевает разделение столбцов символом, это может быть двоеточие, запятая и так далее. Если у тебя ексель открывает все в одном столбце, но при этом текст норм, и запятые в нем есть, то значит ты не задал настройки импорта csv в Эксель, и в качестве разделителя он ждёт не запятую, а точку с запятой, например. Просто задай в настройках запятую как разделитель.
0
2 / 2 / 0
Регистрация: 15.04.2019
Сообщений: 215
19.08.2022, 09:16  [ТС]
И я думаю задача сводится к тому, чтобы получить либо сразу csv for ms excel средствами php, либо сначала обычный csv, а потом получить из него csv for ms excel.

Пока я csv получаю вот так:

PHP
1
2
3
4
5
6
7
$output = fopen("table.csv", "w");    
$result = mysql_query($query);
 
while ($row = mysql_fetch_assoc($result)) {     
fputcsv($output, $row);
} 
fclose($output);
Насчёт mysql_query и mysql_fetch_assoc не пугайтесь, просто специфичная задача оставить пока такой устаревший синтаксис.

Добавлено через 7 минут
В $query - запрос к базе данных mysql.

Добавлено через 3 минуты
Цитата Сообщение от Zhbert Посмотреть сообщение
значит ты не задал настройки импорта csv в Эксель, и в качестве разделителя он ждёт не запятую, а точку с запятой, например. Просто задай в настройках запятую как разделитель.
нет импорта csv в excel, есть формирование файла csv средствами php, не нажатиями кнопок в phpMyAdmin

Добавлено через 49 секунд
Цитата Сообщение от Zhbert Посмотреть сообщение
Просто задай в настройках запятую как разделитель.
можно это сделать кодом php?
0
23 / 16 / 9
Регистрация: 10.02.2021
Сообщений: 44
19.08.2022, 09:30
Цитата Сообщение от sergey-nv Посмотреть сообщение
можно это сделать кодом php?
Третий параметр fputcsv как раз устанавливает разделитель.
0
 Аватар для Zhbert
563 / 60 / 7
Регистрация: 27.03.2020
Сообщений: 186
19.08.2022, 10:42
Цитата Сообщение от sergey-nv Посмотреть сообщение
нет импорта csv в excel
Цитата Сообщение от sergey-nv Посмотреть сообщение
Кириллический текст при открытии в excel отображается корректно, но нет таблицы, все через запятые, в первом столбце.
Окей

Цитата Сообщение от sergey-nv Посмотреть сообщение
есть формирование файла csv средствами php, не нажатиями кнопок в phpMyAdmin
Конечная цель-то какая? Шоб в екселе открыть смогли? Ну тогда:
1. Задай разделитель, который по дефолту в екселе
2. Объясни тем, кто будет импортировать твой файл, что у тебя разделитель запятая (если они сами, конечно, не увидят этого).

Если цель не открыть в екселе, а просто сгенерить csv-файл, то генерь как хочешь, дальше пусть разбираются уже те, кто будет его импортировать куда им там надо.
0
2 / 2 / 0
Регистрация: 15.04.2019
Сообщений: 215
19.08.2022, 14:12  [ТС]
Цитата Сообщение от troizet Посмотреть сообщение
Третий параметр fputcsv как раз устанавливает разделитель.
Да, тоже нашёл такое, прописал:
PHP
1
fputcsv($output, $row, ";");
получилось, открылась таблица в Excel.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
19.08.2022, 14:12
Помогаю со студенческими работами здесь

Как изменить кодировку при открытии csv файла в BDE?
День добрый подскажите как при открытии csv файла в BDE поменять кодировку?

Php не понимает кодировку файла
Здравствуйте! В программе требуется работать с файлом, но php не понимает русские символы в нем. Пробовал при помощи нотпада кодировать...

Вам доступен csv файл data.csv, содержащий информацию в csv формате.Напишите функцию read_csv для чтения данных из файла
Вам доступен CSV-файл data.csv, содержащий информацию в csv формате. Напишите функцию read_csv для чтения данных из этого файла. Она должна...

Сменить кодировку массива
Есть более элегантный способ, нежели? $data_ar_p = explode( "^", iconv( 'UTF-8', 'Windows-1251', implode( "^", $data_ar_p ) )...

Сменить системную кодировку
Приветствую. Обнаружил что кириллические символы не выводятся в некоторых случаях, например, в шаблонах MVS2017 и т.д. При этом в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11680&d=1772460536 Одним из. . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru