Programação da TV (from ZON.pt)
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.