[], 'extract' => [], 'scrape' => []]; $siteConfig['extract'] = $this->normalizeRegexp($siteConfig['extract']); $siteConfig['host'] = array_map('strtolower', (array) $siteConfig['host']); $siteConfig['scrape'] = $this->normalizeScrape($siteConfig['scrape']); foreach ($siteConfig['attributes'] as &$attrConfig) { if (isset($attrConfig['filterChain'])) { $attrConfig['filterChain'] = (array) $attrConfig['filterChain']; } } unset($attrConfig); return $siteConfig; } /** * Normalize a regexp / indexed array of regexps * * @param array|string $value * @return array */ protected function normalizeRegexp($value) { return (array) $value; } /** * Normalize the "scrape" value * * @param array $value * @return array */ protected function normalizeScrape($value) { if (!empty($value) && !isset($value[0])) { $value = [$value]; } foreach ($value as &$scrape) { $scrape += ['extract' => [], 'match' => '//']; $scrape['extract'] = $this->normalizeRegexp($scrape['extract']); $scrape['match'] = $this->normalizeRegexp($scrape['match']); } unset($scrape); return $value; } }