zeroonnet Posted May 18, 2008 at 01:35 AM Report Share #185781 Posted May 18, 2008 at 01:35 AM 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 at 02:05 AM Report Share #185787 Posted May 18, 2008 at 02:05 AM 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 at 08:18 PM Report Share #189053 Posted June 1, 2008 at 08:18 PM onde está o constructor ? 😛 Link to comment Share on other sites More sharing options...
fnds Posted June 2, 2008 at 07:46 PM Report Share #189208 Posted June 2, 2008 at 07:46 PM Não tá, php4... Link to comment Share on other sites More sharing options...
femajocri Posted December 14, 2009 at 11:19 PM Report Share #300433 Posted December 14, 2009 at 11:19 PM 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 at 11:17 AM Report Share #300466 Posted December 15, 2009 at 11:17 AM 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 at 07:49 PM Report Share #300560 Posted December 15, 2009 at 07:49 PM 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 at 07:59 PM Report Share #300564 Posted December 15, 2009 at 07:59 PM 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 at 11:50 PM Report Share #300650 Posted December 15, 2009 at 11:50 PM 👍 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