zeroonnet Posted May 18, 2008 Report Share Posted May 18, 2008 Bem hoje fiz uma class que busca todos os canais, programacao dos mesmos e as infos de cada programa no 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. Bem se virem algum erro ou bug ou se quizerem dar uma sugestão digam xD Fiquem Bem. Link to comment Share on other sites More sharing options...
djthyrax Posted May 18, 2008 Report Share Posted May 18, 2008 Cool, mas com regex eras capaz de poupar trabalho... Não peças ajuda por PM! A tua dúvida vai ter menos atenção do que se for postada na secção correcta do fórum! Link to comment Share on other sites More sharing options...
Gurzi Posted June 1, 2008 Report Share Posted June 1, 2008 onde está o constructor ? 😛 Link to comment Share on other sites More sharing options...
fnds Posted June 2, 2008 Report Share Posted June 2, 2008 Não tá, php4... Link to comment Share on other sites More sharing options...
femajocri Posted December 14, 2009 Report Share Posted December 14, 2009 boas, tentei usar isto com o seguinte codigo: <?php include("zon.php"); $lista = new zon(); $lista->getProgramas(5,0); ?> mas o resultado é uma pagina em branco 🙂 Alguma dica? Cumprimentos, Femajocri Link to comment Share on other sites More sharing options...
fnds Posted December 15, 2009 Report Share Posted December 15, 2009 Provavelmente a class já está desactualizada o site da Zon pode ter mudado. Link to comment Share on other sites More sharing options...
femajocri Posted December 15, 2009 Report Share Posted December 15, 2009 boas, Obrigado pela resposta 🙂 Em relação ao epg, eu tenho o mxl da zon, mas falta-me "unhas"... ? http://zon.xmltv.tekever.eu/epg.xml Alguma dica? Cumpts, femajocri Link to comment Share on other sites More sharing options...
fnds Posted December 15, 2009 Report Share Posted December 15, 2009 Eia esse XML está muito fixe! http://pt2.php.net/simple_xml http://www.w3schools.com/PHP/php_xml_simplexml.asp Link to comment Share on other sites More sharing options...
femajocri Posted December 15, 2009 Report Share Posted December 15, 2009 👍 e tenho a da meo 😛 http://services.sapo.pt/Metadata/Service/EPG?culture=PT mas também nessa me sai uma janela em branco quando descomento no index.php daqui este codigo: "$response = $client->GetChannelList();" Cumpts, femajocri Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now