Попробуйте что-то вроде этого:
// set path to file
$file = WWW_ROOT.'uploads/120518SU';
// check if file exists
if (file_exists($file)) {
// Reads an entire file into an array with file() method
// and loop array
foreach (file($file) as $line) {
// convert line value to new array
$arr = explode(' ', $line);
// do something with your data..
$data = [
'GunNo' => $arr[0],
// ...
];
$entity = $this->EventProgram->newEntity($data);
$this->EventProgram->save($entity);
}
}
Обновите с некоторым тестом:
$line = '00003 009 072 150.8 06:37:15';
$arr = explode(' ', $line);
print_r($arr);
// output
Array
(
[0] => 00003
[1] => 009
[2] => 072
[3] => 150.8
[4] =>
[5] =>
[6] =>
[7] => 06:37:15
)
$line = 'parti 008 069 134.8 P 06:37:58';
// ..
Array
(
[0] => parti
[1] => 008
[2] => 069
[3] => 134.8
[4] => P
[5] =>
[6] => 06:37:58
)
Тогда:
// do something with your data..
$data = [
// ...
'TimeofReading' => end($arr),
];
Обновление: чтение в виде файла csv
Использование fgetcsv ()
Функция fgetcsv () анализирует строку из открытого файла, проверяя поля CSV.
Функция fgetcsv () перестает возвращаться на новой строке, на указанной длине или в EOF, в зависимости от того, что наступит раньше.
Эта функция возвращает поля CSV в массиве в случае успеха или FALSE в случае ошибкии EOF.
fgetcsv(file,length,separator,enclosure);