我在下面列出了一個文本列表,它來自一個名爲EVE Online的流行在線遊戲,當你殺死一個人在遊戲中時,它基本上會郵寄給你。我正在構建一個工具來解析這些使用PHP來提取所有相關信息。我將需要顯示所有信息,並且正在撰寫類以很好地將其分解爲相關的封裝數據。以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
我正在考慮使用正則表達式來解析數據,但你會怎麼做呢?你會將郵件摺疊成一行字符串還是解析數組中的每一行?麻煩的是有一些異常可以解釋。
首先,「涉及到的各方:」部分是動態的,可以包含大量具有類似結構的人員,但如果計算機控制的敵人也會對受害者進行射擊,則會縮短爲「姓名'和'Damage Done'字段,如上所示(Gistatis Tribuni/Angel Cartel)。
其次,'毀壞'和'丟棄'物品是動態的,並且每封郵件的長度都不相同,我還需要獲得數量和其他貨物的數量。
一種方法的想法是受歡迎的。
我無法與圖片競爭,因爲+1也打破了div :) – Owen 2008-11-28 09:51:17
Definitly最專業的答案。但我不確定這會對他有多大幫助。它適用於EVE在線,不適用於ADA輸出解析器... – 2008-11-28 12:59:15