PHP Script для переноса текстового файла в базу данных - PullRequest
0 голосов
/ 04 января 2011

У меня есть набор текстовых файлов, содержащих личные данные.Я хочу использовать скрипт для их запуска и записи в базу данных mysql.На данный момент я прочитал текстовый файл в строку, взорвал строку в "", а затем пробежался по массиву, чтобы найти необходимую информацию.Хотя есть несколько проблем с этим, поэтому, возможно, кто-то знает лучшее решение в целом.

Базовый текстовый файл выглядит так:

Name: Marius
Address 1: Street
Address 2: Town
Address 3: Country
etc

Проблема в том, что у меня естьнет никакого способа узнать, как долго «стоимость», т.е. улица.Это может быть «Somestreet», «Some Street» или «Some Street 1337».Это относится практически ко всем полям.

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

1 Ответ

2 голосов
/ 04 января 2011

Как Адам намекает в комментариях: если нет табуляции, cr / lf или подобного разделителя, в вашей строке недостаточно информации для анализа данных.

Если существует только ограниченный наборключей, вы можете предоставить этот набор в качестве дополнительной информации.
Поскольку вы хотите вставить данные в таблицу mysql, я предполагаю, что ключи ограничены и уникальны .
С массивомэти ключевые строки, ваш алгоритм синтаксического анализа будет работать следующим образом:

1 explode the string at ":"
2 loop through the resulting array, where you should find a structure like this:
    [some or no value][space or other delimiter][known key]
2.1 remember the key from the previous loop (empty as default)
2.2 since the keys should be unique, loop through the array of known keys
2.2.1 if a key matches the current string structure from the right, you can 
    strip this key off the right side of the string, trim the string and you
    have the current value
2.2.2 if you found a value, put both into the result array: 
    $arr[previous key] = [current value]

Это должно сработать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...