Как бы я пошел, создав парсер, который имеет возможность импортировать TXT в MySQL - PullRequest
1 голос
/ 25 июня 2011

http://pastebin.com/raw.php?i=7NTGXU5R

У меня около ста слушателей в одном и том же файле

Я пытался работать над решением php, но я не был уверен, как разобрать пространство,Я мог только найти fgetcsv, который запятые

В каком направлении я должен идти, чтобы иметь смысл

Я помню несколько C ++ много лет назад, я думал, что я делаю что-то вроде getline, затемсохранить строку (или строку в нашем случае) в массиве. Как только это будет сделано, просто напишите несколько операторов if для прохождения каждой строки и классифицируйте первый элемент (столбец) в каждом массиве как обозначенный «заголовок».

1 Ответ

0 голосов
/ 27 июня 2011

Такие задачи всегда сводятся к большому количеству настраиваемого кода для обработки строк.Ваше лучшее оружие выбора будет регулярными выражениями.Забудьте о fgetcsv, если файлы выглядят так же, как ваш файл.

Базовая логика может выглядеть примерно так:

  • Извлечение всех строк файла с помощью файловой функции.
  • Сохраните каждую область таблицы в свой собственный массив, содержащий строки:
foreach ($filelines as $line)
{
    $lefreportlines[] = trim(substr($line, 0, 93));
    $middlereportlines[] = trim(substr($line, 67, 135));
    ...
}
  • Когда вы закончите, начните обрабатывать каждый отчет так, как он того заслуживает.Например, крайний левый отчет может быть просто проанализирован с помощью preg_split ('/ \ s + /', $ line);

В любом случае, у вас будет много работы.Удачи!

...