Esta class serve para se ir buscar toda a inforamação da programação da tv ao site da zon.
<?php /** * @author zeroonnet * @version 1.0 * Programação da TV do site da zon. */ class zon { protected $zonurl = 'http://www.zon.pt'; protected $mainurl = 'http://www.zon.pt/Televisao/Programacao.aspx'; protected $url = 'http://www.zon.pt/Televisao/ListaProgramas.aspx?cat=&package=9'; function getInfo($programa) { $info = array(); $site = file_get_contents($this->mainurl.'?programId='.$programa); $site = explode('<div id="EPG_right_content_deta" class="EPG_right_content_deta">',$site); $site = explode('<!--END Right Epg Content-->',$site[1]); $site = $site[0]; if (stripos($site,'class="EPG_dest_photo"><img src="') !== false) { $imagem = explode('class="EPG_dest_photo"><img src="',$site); $imagem = explode('"',$imagem[1]); $imagem = $imagem[0]; $imagem = $this->zonurl.$imagem; $info['ImagemPrograma'] = $imagem; } if (stripos($site,'<param name="src" value="') !== false) { $trailer = explode('<param name="src" value="',$site); $trailer = explode('">',$trailer[1]); $trailer = $trailer[0]; if (strlen($trailer) > 2) { $info['TrailerPrograma'] = $trailer; } } if (stripos($site,'<p><strong>De:</strong> ') !== false) { $de = explode('<p><strong>De:</strong> ',$site); $de = explode('</p>',$de[1]); $de = $de[0]; $info['DePrograma'] = $de; } if (stripos($site,'<p><strong>Com:</strong> ') !== false) { $com = explode('<p><strong>Com:</strong> ',$site); $com = explode('</p>',$com[1]); $com = $com[0]; $info['ComPrograma'] = $com; } $nome = explode('<h4 class="EPG_dest_tit">',$site); $nome = explode('</h4>',$nome[1]); $nome = $nome[0]; $ptags = explode('</h4>',$site); $ptags = explode('<p>',$ptags[1]); unset($ptags[0]); $encontrado = false; foreach ($ptags as $ptag) { if (stripos($ptag,'<strong>') === false && !$encontrado) { $descricao = explode('</p>',$ptag); $descricao = $descricao[0]; $encontrado = true; } } if (stripos($site,'<div class="sep_linha_content">') !== false) { $proximas = explode('<div class="sep_linha_content">',$site); $proximas = explode('<p>',$proximas[1]); $proximas = explode('</p>',$proximas[1]); $proximas = explode('<br />',$proximas[0]); unset($proximas[count($proximas) - 1]); $sessoes = array(); foreach ($proximas as $proxima) { $sessoes[] = trim($proxima); } $info['SessoesPrograma'] = $sessoes; } $info['NomePrograma'] = $nome; $info['CodigoPrograma'] = $programa; $info['DescricaoPrograma'] = $descricao; return $info; } function getProgramas($canal,$dia) { $site = file_get_contents($this->url.'&channelSigla='.$canal.'&dia='.$dia); $data = explode('<td width="80%" nowrap="nowrap" height="20" align="left"><strong>',$site); $data = explode('</strong></td>',$data[1]); $data = $data[0]; $programas = explode('<td align="center" class="epgPos epgTime" >',$site); unset($programas[0]); $programa = array(); $indice = 0; foreach ($programas as $program) { $hora = explode('</td>',$program); $hora = $hora[0]; $tipo = explode('<td class="',$program); $tipo = explode('">',$tipo[1]); $tipo = $tipo[0]; $codigo = explode('PreviewProgram("',$program); $codigo = explode('")',$codigo[1]); $codigo = $codigo[0]; $nome = explode('");'>',$program); $nome = explode('</a>',$nome[1]); $nome = $nome[0]; $programa[$indice]['HoraPrograma'] = $hora; $programa[$indice]['TipoPrograma'] = $tipo; $programa[$indice]['CodigoPrograma'] = $codigo; $programa[$indice]['NomePrograma'] = $nome; $indice++; } return $programa; } function getCanais() { $site = file_get_contents($this->mainurl); $site = explode('<option selected="selected" value="ALL">Todos os canais</option>',$site); $site = explode('</select>',$site[1]); $site = $site[0]; $options = explode('<option',$site); unset($options[0]); $canal = array(); $indice = 0; foreach ($options as $option) { $option = explode('">',$option); $codigo = explode('value="',$option[0]); $codigo = str_replace('+','%2b',str_replace(' ','%20',$codigo[1])); $nome = explode('</option>',$option[1]); $nome = $nome[0]; $imagem = file_get_contents($this->url.'&channelSigla='.$codigo.'&dia=0'); $imagem = explode('<td class="logo"><img src="..',$imagem); $imagem = explode('"',$imagem[1]); $imagem = $imagem[0]; $imagem = $this->zonurl.$imagem; $canal[$indice]['CodigoCanal'] = $codigo; $canal[$indice]['NomeCanal'] = $nome; $canal[$indice]['ImagemCanal'] = $imagem; $indice++; } return $canal; } } ?>
Exitem tres funçoes.
getCanais retorna todos os canais e os respectivos codigos.
getProgramas tem de se colocar o codigo do canal e o dia (-1,0,1,2,3,4,5,6) sendo que 0 = hoje. e retorna a programacao desse dia para esse canal.
getInfo retorna toda a informação de um determinado programa. tem de se enviar o codigo do programa.