Ferramentas de Utilizador

Ferramentas de Site


dev_web:php:snippet:programacao_tv_zon.pt

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>&nbsp;') !== false)
		{
			$de = explode('<p><strong>De:</strong>&nbsp;',$site);
			$de = explode('</p>',$de[1]);
			$de = $de[0];
			$info['DePrograma'] = $de;
		}
 
		if (stripos($site,'<p><strong>Com:</strong>&nbsp;') !== false)
		{
			$com = explode('<p><strong>Com:</strong>&nbsp;',$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.

dev_web/php/snippet/programacao_tv_zon.pt.txt · Esta página foi modificada pela última vez em: 2018/05/14 21:37 (Edição externa)