array( 'name' => 'txname', 'required' => true ) )); private function getFinalURL($url) { $ch = curl_init($url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_NOBODY, true); curl_setopt($ch, CURLOPT_HEADER, true); $ret = curl_exec($ch); if($ret === FALSE) { return null; } $redirect = curl_getinfo($ch, CURLINFO_REDIRECT_URL); if($redirect === false) return $url; return $redirect; } public function collectData(){ $html = getSimpleHTMLDOM($this->getURI()) or returnServerError('No results for this query.'); foreach($html->find('[data-mediapolis]') as $episode) { // var_dump($episode); $title = $episode->getAttribute('data-title'); if($title === FALSE) { continue; } $audiourl = $episode->getAttribute('data-mediapolis'); $item = array(); $item['author'] = $this->getInput('txname'); $item['title'] = $title; $item['content'] = $episode->plaintext; $item['enclosures'] = [ $this::getFinalURL($audiourl) ]; $item['url'] = $this::URI . $episode->getAttribute('data-href'); $this->items[] = $item; } } public function getURI(){ return 'https://www.raiplayradio.it/programmi/' . $this->getInput('txname') . '/archivio/puntate/'; } public function getName(){ if($this->getInput('txname')) { return 'Radio Rai - ' . $this->getInput('txname'); } return parent::getName(); } }