【发布时间】:2020-01-19 16:32:28
【问题描述】:
我在 codeigniter 中解析文本文件时遇到了麻烦,对于文件中的每一行我需要捕获组数据...数据是: - 渐进式数字 - 操作员 - 制造商 - 模型 - 登记 - 类型
这是文件行的示例
8 SIRIO S.P.A. BOMBARDIER INC. BD-100-1A10 I-FORZ STANDARD
9 ESERCENTE PRIVATO PIAGGIO AERO INDUSTRIES S.P.A. P.180 AVANTI II I-FXRJ SPECIALE/STANDARD
10 MIGNINI & PETRINI S.P.A. ROBINSON HELICOPTER COMPANY R44 II I-HIKE SPECIALE/STANDARD
11 MIGNINI & PETRINI S.P.A. ROBINSON HELICOPTER COMPANY R44 II I-HIKE STANDARD
12 BLUE PANORAMA AIRLINES S.P.A. THE BOEING COMPANY 737-86N I-LCFC STANDARD
要解析每一行,我使用以下代码:
if ($fh = fopen($filePath, 'r')) {
while (!feof($fh)) {
$line = trim(fgets($fh));
if(preg_match('/^(\d{1,})\s+(\w{1,})\s+(\w{1,})\s+(\w{1,})\s+(\w{1,})\s+(\w{1,})$/i', $line, $matches))
{
$regs[] = array(
'Operator' => $matches[1],
'Manufacturer' => $matches[2],
'Model' => $matches[3],
'Registration' => $matches[4],
'Type' => $matches[5]
);
$this->data['error'] = FALSE;
}
}
fclose($fh);
}
上面的代码不起作用...我认为是因为某些数据组由多个单词组成...例如“SIRIO S.P.A.” 有什么提示可以解决这个问题吗? 非常感谢您的帮助
【问题讨论】:
标签: php regex codeigniter