/** * Searches for matching citizens * @param string $searchQuery * @param int $page * @return array */ public function search($searchQuery, $page = 1) { $request = $this->getClient()->get('main/search/'); $request->disableCookies(); $query = $request->getQuery(); $query->set('q', $searchQuery); $query->set('page', $page); $xs = $request->send()->xpath(); $result = []; $paginator = new OldSelector\Paginator($xs); if ($paginator->isOutOfRange($page) && $page > 1) { return $result; } $rows = $xs->find('//table[@class="bestof"]')->findAll('tr[position()>1]'); return $rows->map(function (Node $tr) { $href = $tr->find('td[2]/div[1]/div[2]/a/@href')->extract(); return ['id' => (int) substr($href, strrpos($href, '/') + 1), 'name' => $tr->find('td[2]/div[1]/div[2]/a')->extract()]; }); }