Я бы поизвращался так:
Построчно искал наличие "
https://www.ingress.com/intel" в строке.
В случае если не найдено, то с этой строки парсим ачиву с датой или "ачив не найдено"
со всех последующих строк в которых найдено "
https://www.ingress.com/intel" мы Забираем в БД список порталов присвоенных последнему найденному пользователю.
for($i=0;$i<count($list);$i++){
if(stristr($list[$i], 'https://www.ingress.com/intel') === FALSE) {
$login = 'парсим логин с $list[$i] и присваеваем';
} else {
$port = 'парсим данные портала и прочее с $list[$i]';
}
Кладём в БД $login $port;
}
Таким образом мы перелопатим все строки и положим всю инфу в БД. Нужно тольно $list[] почистить от пустых значений или фильтровать.
p.s. $list[] - список строк принятого текста.