private function extractMovies(DOMQuery $movieDomList) { $movieResult = array(); for ($i = 1; $i < $movieDomList->count(); $i++) { $movieDom = new DOMQuery($movieDomList->get($i)); /* @var $movieDom DOMQuery */ $movieData = array(); $titledom = $movieDom->find('h4')->first(); if (!$titledom) { continue; } $movieData['title'] = preg_replace('/\\s+\\(\\d\\d\\d\\d\\)$/', '', trim($titledom->text())); $imgDomTmp = $movieDom->find('.image_sm img')->first(); $movieData['poster_url'] = $imgDomTmp ? $imgDomTmp->attr('src') : ''; $certImg = $movieDom->find('.certimage')->first(); $movieData['rated'] = $certImg ? $certImg->attr('title') : ''; $timeSpan = $movieDom->find('time')->first(); $movieData['runtime'] = $timeSpan ? intval(trim($timeSpan->text())) : -1; $ratingDom = $movieDom->find('[itemprop=ratingValue]')->first(); $movieData['user_rating'] = $ratingDom ? floatval($ratingDom->text()) / self::MAX_RATING : 0; $metaDom = $movieDom->find('span.nobr')->eq(1); $metaDomScoreTmp = explode("/", preg_replace('/[^0-9\\/]+/', '', $metaDom->text())); $movieData['critic_rating'] = floatval($metaDomScoreTmp[0]) / self::MAX_METASCORE; //var_dump($movieDom->find('.showtimes')->count());exit; //echo (preg_replace("/\s+/", " ", $movieDom->text())), "<br/><br/>"; //continue; $movieResult[] = array('movie' => $movieData, 'showtimes' => $this->extractTimes($movieDom->find('.showtimes'), $movieDom)); } return $movieResult; }