PHP анализирует первую строку файла csv, чтобы определить, где сохранить данные в последующих строкахPhp

Кемеровские программисты php общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 PHP анализирует первую строку файла csv, чтобы определить, где сохранить данные в последующих строках

Сообщение Anonymous »

Я пытаюсь извлечь данные из электронных таблиц, отправленных нам клиентом, чтобы мы могли сохранить эти данные в нашей системе. К сожалению, электронные таблицы несогласованы, в них добавляются и удаляются столбцы, что затрудняет создание единого сценария для извлечения данных и их сохранения. С другой стороны, они используют одинаковые заголовки для каждого столбца в электронной таблице.
Мой план состоял в том, чтобы обработать первую строку с их заголовками и соединить количество столбцов со столбцом нашей базы данных. имя. В настоящее время я сохраняю его как связанный массив. В приведенном ниже примере кода для краткости удалены некоторые значения регистра. Ассоциативный массив имеет количество столбцов в качестве ключа и имя в качестве значения.

Код: Выделить всё

if (($handle = fopen($guestData, "r")) !== FALSE) {
while (($data = fgetcsv($handle, 10000, ",")) !== FALSE) {
$num = count($data);
$myArray = array();
for ($c=0; $c < $num; $c++) {
switch ($data[$c]) {
case 'Customer ID':
$myArray += [$c => "operatorBookingID"];
break;
case 'Customer Name':
$myArray += [$c => "guestName"];
break;
case 'Country':
$myArray += [$c => "nationality"];
break;
case 'Phone number':
$myArray += [$c => "phone"];
break;
'
'
'
}
}
}
Моя первая проблема заключается в том, что по какой-то причине первый случай не регистрируется и не добавляется в массив, даже если он имеет правильную строку. Идентификатор клиента всегда находится в первом столбце получаемых нами таблиц. Я заканчиваю массивом, который начинается так:

Код: Выделить всё

 Array ( [3] => guestName [4] => nationality [5] => phone etc etc )
Электронная таблица представляет собой простые файлы, разделенные запятыми, в которых все данные, содержащие запятые, заключены в двойные кавычки.
отредактировано
Предыдущая проблема с ошибкой была решена благодаря второму комментарию о слишком раннем закрытии потока скриптом.

Подробнее здесь: https://stackoverflow.com/questions/793 ... sequent-ro
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Как найти строки в нескольких строках txt-файла, а затем добавить все в новую строку csv
    Anonymous » » в форуме Linux
    0 Ответы
    11 Просмотры
    Последнее сообщение Anonymous
  • PHP не изменяет первую строку после заголовка в файле CSV, но изменяет последующие строки
    Anonymous » » в форуме Php
    0 Ответы
    34 Просмотры
    Последнее сообщение Anonymous
  • PHP не изменяет первую строку после заголовка в файле CSV, но изменяет последующие строки
    Anonymous » » в форуме Php
    0 Ответы
    25 Просмотры
    Последнее сообщение Anonymous
  • Невозможно сохранить сессию PHP для последующих вызовов API после входа в систему
    Anonymous » » в форуме Php
    0 Ответы
    34 Просмотры
    Последнее сообщение Anonymous
  • Как пропустить первую строку при чтении CSV с помощьюstreamreader
    Anonymous » » в форуме C#
    0 Ответы
    10 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Php»