Чтение содержимого из позиционного текстового файла в PHP?

У меня есть текстовый файл, имеющий следующий формат

00151422    N8X 3V6 2013-11-11 00:19:00.000 IN          [email protected]                    E       200-2462 Howard Avenue      Windsor ON  CAN N8X3V6  M   Dr. Patrick Soong

00331448    T6E 2R1 2010-03-01 00:00:00.000 IN          [email protected]                   E       9743 88 Ave NW      Edmonton    AB  CAN T6E2R1      Alina Tirlea Engstrom

00364578    K7N 1A3 2011-01-12 00:00:00.000 IN                              E       4463 Bath Rd        Amherstview ON  CAN K7N1A3  M   Mr. Martin Kandler

Вышеупомянутый позиционный текстовый файл содержит 3 записи и 20 полей в каждой записи. Также я теперь размер для каждого столбца. Как я буду читать записи и поля в записи, используя PHP?

Размер полей

f1 = 8; 2 = 10; f3 = 10; f4 = 10; f5 = 255; f6 = 50; f7 = 255; f8 = 10; f9 = 10; f10 = 50; F11 = 50; f12 = 1; F13 = 20; F14 = 50; F15 = 50; F16 = 60; F17 = 10; F18 = 20; F19 = 20; F20 = 1;

0

Решение

Использовать substr() внутри какой-то петли. Не проверено, но должно дать вам представление:

$lengths = [8,10,10]; // define all the lengths

function fixed_width_data_to_array($data, $lengths) {

foreach($rows as $row) {

$position = 0; // start at the beginning of the row

foreach($lengths as $length) {

// add current field to array
$my_data[] = trim(substr($row, $position, $length));

// move the 'pointer' to the start of the next field
$position += $length;
}

// add current row to an array
$my_array[] = $my_data;

}

return $my_array;

}
2

Другие решения

Спасибо sal00m, наконец-то получил ответ — взорваться с помощью вкладки.

-1

По вопросам рекламы [email protected]