private static function parseListview($item, $read) { $crawler = new Crawler($item); $message = new Messages(); # Message id. $message->setId((int) str_replace('?go=read&id=', '', $crawler->filterXPath('//div[contains(@class, "mym_subject")]/a')->attr('href'))); # Action id. $message->setActionId((int) str_replace('msgchecker', '', $crawler->filterXPath('//div[contains(@class, "mym_checkboxes")]/input')->attr('id'))); # Thread id. $message->setThreadId((int) str_replace('&toname=' . $message->getUsername(), '', str_replace('?go=send&replyid=' . $message->GetActionId() . '&threadid=', '', $crawler->filterXPath('//span[contains(@class, "mym_actions")]/a')->attr('href')))); # Username of the sender. $message->setUsername($crawler->filterXPath('//div[contains(@class, "mym_user")]/a')->text()); # Time of the received message. $message->setTime($crawler->filterXPath('//span[@class="mym_date"]')->text()); # Read (if the user has read this message). $message->setRead($read); # Subject and Preview are linked together $messagePreview = trim($crawler->filterXPath('//div[contains(@class, "mym_subject")]/a/span')->text()); $messageSubject = trim(str_replace($messagePreview, '', $crawler->filterXPath('//div[contains(@class, "mym_subject")]/a')->text())); $messageSubject = preg_replace('/ -$/', '', $messageSubject); # Subject. $message->setSubject($messageSubject); # Preview message. $message->setPreview($messagePreview); return $message; }