private function parsePage(Crawler $crawler) { $questions = $crawler->filter('table.question'); $testsArr = $questions->each(function (Crawler $node, $i) { $test = new Test(); //1 set Ask $ask = utf8_decode($node->filter('div.question')->text()); $ask = preg_replace('/\\s+/', ' ', $ask); $ask = trim(preg_replace('/^[\\s]?[0-9]*/', '', $ask)); $test->setAsk($ask); $variants = $node->filter('.new_answer')->each(function (Crawler $node, $i) { $variant = new Variant(); $varStr = utf8_decode($node->text()); $varStr = preg_replace('/\\s+/', ' ', $varStr); $varStr = trim($varStr); $varStr = substr($varStr, 2); $varStr = trim($varStr); $variant->setVariant($varStr); $right = $node->attr('style'); if (!empty($right)) { $variant->setPrOtvet(true); } return $variant; }); $test->setVariants($variants); return $test; }); return $testsArr; }