我在下面有一个文本列表,它来自一个名为 EVE Online 的流行在线游戏,当你在游戏中杀死一个人时,这基本上会邮寄给你。我正在构建一个工具来使用 PHP 解析这些以提取所有相关信息。我将需要显示的所有信息,并且我正在编写类以将其很好地分解为相关的封装数据。
2008.06.19 20:53:00
Victim: Massi
Corp: Cygnus Alpha Syndicate
Alliance: NONE
Faction: NONE
Destroyed: Raven
System: Jan
Security: 0.4
Damage Taken: 48436
Involved parties:
Name: Kale Kold
Security: -10.0
Corp: Vicious Little Killers
Alliance: NONE
Faction: NONE
Ship: Drake
Weapon: Hobgoblin II
Damage Done: 22093
Name: Harulth (laid the final blow)
Security: -10.0
Corp: Vicious Little Killers
Alliance: NONE
Faction: NONE
Ship: Drake
Weapon: Caldari Navy Scourge Heavy Missile
Damage Done: 16687
Name: Gistatis Tribuni / Angel Cartel
Damage Done: 9656
Destroyed items:
Capacitor Power Relay II, Qty: 2
Paradise Cruise Missile, Qty: 23
Cataclysm Cruise Missile, Qty: 12
Small Tractor Beam I
Alloyed Tritanium Bar, Qty: 2 (Cargo)
Paradise Cruise Missile, Qty: 1874 (Cargo)
Contaminated Nanite Compound (Cargo)
Capacitor Control Circuit I, Qty: 3
Ballistic Deflection Field I
'Malkuth' Cruise Launcher I, Qty: 3
Angel Electrum Tag, Qty: 2 (Cargo)
Dropped items:
Ballistic Control System I
Shield Boost Amplifier I, Qty: 2
Charred Micro Circuit, Qty: 4 (Cargo)
Capacitor Power Relay II, Qty: 2
Paradise Cruise Missile, Qty: 10
Cataclysm Cruise Missile, Qty: 21
X-Large Shield Booster II
Cataclysm Cruise Missile, Qty: 3220 (Cargo)
Fried Interface Circuit (Cargo)
F-S15 Braced Deflection Shield Matrix, Qty: 2
Salvager I
'Arbalest' Cruise Launcher I
'Malkuth' Cruise Launcher I, Qty: 2
我正在考虑使用正则表达式来解析数据,但你会如何处理呢?您会将邮件折叠成单行字符串还是从数组中解析每一行?问题是有一些异常需要解释。
首先,“参与方:”部分是动态的,可以包含很多人,结构如下,但如果计算机控制的敌人也向受害者开枪,它会缩短为只有“名称”和“伤害” Done' 字段,如上图所示(Gistatis Tribuni / Angel Cartel)。
其次,“Destroyed”和“Dropped”项目是动态的,每封邮件的长度都不同,我还需要获取数量以及它们是否在货物中。
欢迎提出方法的想法。