Intereting Posts
PHP: Как использовать array_filter () для фильтрации ключей массива? API групп LinkedIn – получение логотипа группы для нескольких групп в одном запросе API Проблема Weird SimpleXML – не может ссылаться на узлы по имени? Zend_Auth: разрешить пользователю вход в несколько таблиц / идентификаторов Добавьте одно приращение, если существует тот же ключ с числовым массивом Неопределенный индекс в PHP Обновления полей MySQL CURRENT_TIMESTAMP при каждом обновлении использование памяти массивом PHP при добавлении огромного числового ключа Как очистить preg_match_all от пустых значений массива CodeIgniter: обращение к функциям с сегментом URL Как отказаться от оплаты Paypal, если не из данного места проживания? Как получить доступ к переменной с включенной страницы? Канонический URL-адрес связан с Facebook, а не с реальным URL-адресом. Динамические теги OpenGraph Лучшая сетка данных для php-приложения с использованием ajax php: импорт нескольких файлов csv в таблицу mysql

Прочтите файл csv и создайте еще один файл csv, используя php

У меня есть. .csv файл, и когда я открываю его через блокнот, он выглядит так:

 ID501501503502 

И когда я печатаю его в браузере через php, это выглядит

 ID 501 501 503 502 

Мой код:

 $handle = fopen("MonC1.csv", "r"); $data = fgetcsv($handle, 0); $fh = fopen('php://output', 'w'); if (! empty($data)) { foreach ($data as $item) { echo $item."<br>"; //fputcsv($fh, array($item)); } } 

Таким образом, в основном тег br внутри цикла for не работает. Это моя первая проблема.

Вторая проблема – даже если я использую fputcsv(now it is turned off) он не создает фактический csv файл.

Теперь мой вопрос заключается в том, как у него нет места в блокноте, и когда я печатаю в браузере, он получает пространство?

У меня есть только одна колонка и ничего больше.

Любая помощь высоко ценится. Заранее спасибо.

Как упоминалось в моем комментарии, похоже, что ваш исходный файл сохраняется с окончанием строки UNIX, а затем вы используете fgetcsv в Windows, поэтому весь файл читается как одна строка. Вероятно, в конце всего вывода есть один.

Поэтому перед обработкой файла вам необходимо предварительно обработать его для преобразования окончаний строки.

В Linux утилита unix2dos делает то, что вы хотите. Или вы можете просто заменить \n на \r\n в вашем файле.

Другая проблема заключается в том, что fgetcsv не превращает весь файл в массив. Вместо этого он считывает одну строку из дескриптора файла и преобразует ее в массив. Вам нужно будет прочитать строки внутри цикла:

 while (($data = fgetcsv($handle)) !== FALSE) { // $data contains one line of the CSV, in array form // now you can fputcsv the single line }