Добавьте линию на вершину файла CSV (первая строка) с PHP

StackOverflow https://stackoverflow.com/questions/9428299

  •  12-11-2019
  •  | 
  •  

Вопрос

нужно обрабатывать большие файлы CSV с PHP. Работа с fgetcsv и производительностью кажется довольно хорошим.Для еще лучшего / быстрой обработки я хотел бы, чтобы файлы CSV имеют имена столбцов в первой строке, которые отсутствуют прямо сейчас.

Теперь я хотел бы добавить верхнюю строку с именами столбцов в файл CSV с PHP перед обработкой файлов с FGETCSV.

Есть ли способ добавить линию верхнюю часть файла с PHP легко?Или это значит, что я должен сделать подход, как только ниже?

  1. Список элемент
  2. Список элемент
  3. Создать файл Temp
  4. Добавьте имена столбцов в этот файл Temp
  5. Прочитайте оригинальное содержимое файла CSV
  6. Поместите исходное содержимое CSV в TEMP-файл
  7. Удалить Оригинальный файл
  8. Переименовать файл temp

    Любая отзыва о том, как это сделать самым эффективным способом высоко ценится.Спасибо за ваше время :)

Это было полезно?

Решение

  1. Прочитайте файл csv с помощью fgetcsv.
  2. Закрыть файл.
  3. Откройте файл, используя режим «W» (WRITE).
  4. Напишите заголовки.
  5. Закрыть файл.
  6. Откройте файл, используя режим «A» (Append).
  7. Написать файл CSV с помощью fptcsv. VOILA!

Другие советы

Пожалуйста, попробуйте это .. намного проще и прямо до точки.

  $file = 'addline.csv';
  $header = "Name, IP,  Host, RAM, Task, NS \r\n";
  $data = file_get_contents($file);
  file_put_contents($file, $header.$data);
.

Вы сделали.Надеюсь, это поможет ...

Просто сделайте это так, как вы предоставили.Нет простого способа расширить файл в начале вместо конца.Это как писать на бумаге.Легко добавлять новые строки под вашим текстом, но вы не можете написать над вами текст.

Не используйте fopen($file, "r+") или fopen($file, "c"), так как это удалит существующие строки в начале или даже на все строки вашего файла.

Почему не определять заголовок в вашем коде вручную, особенно если у каждого файла есть один и тот же заголовок? Если вам действительно нужно вставить заголовок в файлы CSV перед обработкой их, может быть, вы должны рассмотреть возможность использования использования SED Мне нравится: sed -i 1i'"header 1","header 2"' file.csv

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top