Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Program Telewizyjny, Klasa, PHP 4 i 5
tiraeth
post 10.02.2005, 12:32:45
Post #1





Grupa: Przyjaciele php.pl
Postów: 1 789
Pomógł: 41
Dołączył: 30.10.2003
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


<span style="font-weight: bold;">class.tvSchedule.php</span>
  1. <?
  2. /***********************
  3.  * tvSchedule.php v1.0 *
  4.  * ^^^^^^^^^^^^^^^^^^^ *
  5.  * description: *
  6.  * this script show *
  7.  * tv schedule from *
  8.  * o2.pl tv program *
  9.  * ^^^^^^^^^^^^^^^^^^^ *
  10.  ***********************/
  11.  
  12. class tvSchedule
  13. {
  14.  var $prog_id;
  15.  var $prog;
  16.  var $count;
  17.  var $schedule = array();
  18.  
  19.  function setChannel($channel)
  20.  {
  21. $channels = array('TVP 1' => '1', 
  22. 'TVP 2' => '2', 
  23. 'Polsat' => '3',
  24. 'TVN' => '4', 
  25. 'TVN 7' => '5', 
  26. 'TVN 24' => '6', 
  27. 'HBO' => '7', 
  28. 'Canal+' => '8', 
  29. 'Canal+ Film' => '9', 
  30. 'Canal+ Sport' => '10', 
  31. 'Ale kino!' => '11', 
  32. 'Eurosport PL' => '12', 
  33. 'MTV Polska' => '13', 
  34. 'VIVA Polska' => '14', 
  35. 'National Geographic' => '15', 
  36. 'Cartoon Network' => '16', 
  37. 'Discovery Channel' => '17', 
  38. 'Polsat Sport' => '18');
  39.  
  40. $this->prog_id = $channels[$channel];
  41. $this->prog = $channel;
  42. return $this->prog;
  43.  }
  44.  
  45.  function setMaxPrograms($counter = 0)
  46.  {
  47. $this->count = ($counter > 0) ? $counter : 'all';
  48. return $this->count;
  49.  }
  50.  
  51.  function ShowSchedule()
  52.  {
  53. $now = mktime(date('H'), date('i'), 00, date('m'), date('d'), date('Y'));
  54.  
  55. $url = 'http://tv.o2.pl/program/?id_stacja='.$this->prog_id.'&dzien=0';
  56. $fp = file($url);
  57. $fr = implode(&#092;"\", $fp);
  58. $fr = str_replace(&#092;"r\", \"\", $fr);
  59. $fr = str_replace(&#092;"n\", \"\", $fr);
  60. $fr = str_replace(&#092;"</td></tr>\", \"aaENDaa\", $fr);
  61. $fr = strip_tags($fr);
  62.  
  63. $pattern = &#092;"/(d{2}):(d{2})(.*?)aaENDaa/\";
  64. if(preg_match_all($pattern, $fr, $zmienna))
  65. {
  66.  $tablica = $zmienna[0];
  67.  foreach($tablica as $value)
  68.  {
  69. $value = str_replace(&#092;"aaENDaa\", \"\", $value);
  70. $value = preg_replace('/(d{2}):(d{2})(.*?)/', &#092;"0==TYTUL==3\", $value);
  71. list($godzina, $program) = explode(&#092;"==TYTUL==\", $value);
  72.  
  73. if($godzina > &#092;"00:00\")
  74. {
  75.  if(eregi(&#092;" - \", $program))
  76.  {
  77. $hlp = explode(&#092;" - \", $program);
  78. $program = $hlp[0];
  79.  }
  80.  list($godz, $min) = explode(&#092;":\", $godzina);
  81.  $hour = mktime($godz, $min, 00, date('m'), date('d'), date('Y'));
  82.  
  83.  if(date('H:i', $hour) > date('H:i'))
  84.  {
  85. $this->schedule[$hour] = $program;
  86.  }
  87. }
  88.  }
  89. }
  90.  
  91. $tv_i=0;
  92.  
  93.  echo '<span style=\"font-family:Verdana; font-size:10px; color:#000000;\">';
  94.  echo '<b>'.$this->prog.'</b> (id:'.$this->prog_id.')';
  95.  echo '</span><br /><br />';
  96.  
  97. foreach($this->schedule as $godzina => $program)
  98. {
  99.  if($this->count == &#092;"all\")
  100.  {
  101. echo '<span style=\"font-family:Verdana; font-size:10px; color:#000000;\">';
  102. echo '<b>'.date('H:i', $godzina).'</b> ';
  103. echo $program.'</span><br />';
  104.  }
  105.  elseif($tv_i<$this->count)
  106.  {
  107. echo '<span style=\"font-family:Verdana; font-size:10px; color:#000000;\">';
  108. echo '<b>'.date('H:i', $godzina).'</b> ';
  109. echo $program.'</span><br />';
  110. $tv_i++;
  111.  }
  112. }
  113.  }
  114.  
  115.  function destroySchedule()
  116.  {
  117. unset($this->schedule);
  118. unset($this->prog_id);
  119. unset($this->prog);
  120. unset($this->count);
  121.  }
  122. }
  123. ?>


<span style="font-weight: bold;">demo.php</span>
  1. <?
  2. include('class.tvSchedule.php');
  3.  
  4. $tv = new tvSchedule;
  5. $tv->setChannel('Polsat'); # USTAWIAMY KANAL TELEWIZYJNY
  6. $tv->setMaxPrograms(); # USTAWIAMY MAKSYMALNa LICZBE PROGRAOÓW (PUSTE - WSZYSTKIE)
  7. $tv->ShowSchedule(); # WYSWIETLAMY PROGRAMY
  8. $tv->destroySchedule(); # USUWAMY WSZYSTKIE ZMIENNE (GDY CHCEMY WYSWIETLIC INNY KANAL)
  9. ?>


<span style="font-weight: bold;">Opis:</span>
<span style="font-style: italic;">tvSchedule</span> to program telewizyjny wyświetlający programy z dnia dzisiejszego. Wyświetla on tylko programy, które dopiero się zaczną (sprawdzą teraźniejszą godzinę z godzinami programów z tablicy) w ilości podanej w funkcji <span style="font-weight: bold;">setMaxPrograms()</span>.
Go to the top of the page
+Quote Post
crash
post 10.02.2005, 13:11:25
Post #2





Grupa: Przyjaciele php.pl
Postów: 2 196
Pomógł: 2
Dołączył: 17.01.2004
Skąd: Sosnowiec

Ostrzeżenie: (0%)
-----


Fajne, troche przerobiłem i pewnie się przyda, wystarczy dodać pare kanałów i będzie git.


--------------------
Go to the top of the page
+Quote Post
dr_bonzo
post 10.02.2005, 13:17:44
Post #3





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

Ostrzeżenie: (0%)
-----


@Tiraeth:
Feature: wypluwanie programu w XMLu? Tzn. jako czysty XML lub DOMDocument.


--------------------
Nie lubię jednorożców.
Go to the top of the page
+Quote Post
tiraeth
post 10.02.2005, 13:27:03
Post #4





Grupa: Przyjaciele php.pl
Postów: 1 789
Pomógł: 41
Dołączył: 30.10.2003
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


Może napiszę "wypluwanie w XML'u" bo to nie problem ponieważ wszystkie informacje są w tablicach smile.gif


Niedługo będzie update biggrin.gif
Go to the top of the page
+Quote Post
Kocurro
post 14.02.2005, 13:14:51
Post #5





Grupa: Zarejestrowani
Postów: 461
Pomógł: 32
Dołączył: 17.09.2003
Skąd: Łódź

Ostrzeżenie: (0%)
-----


Przerobiłem, trochę poprawiłem i ... muszę powiedzieć, że czegoś takeigo szukałem przez przesżło pół roku smile.gif - nie ma to jak mój zapłon winksmiley.jpg

WIELKIE DZIKI exclamation.gif

a czy nie da się np. jeszcze opsiów programó wyciagnać ? bo gdzieś widziałem taką opcję na jakiejś stronie, ale już nie pamiętam smile.gif
Go to the top of the page
+Quote Post
tiraeth
post 14.02.2005, 13:19:00
Post #6





Grupa: Przyjaciele php.pl
Postów: 1 789
Pomógł: 41
Dołączył: 30.10.2003
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


Na o2 nie ma opisów wszystkich programów ale mogę zrobić i jako div po najechaniu na program.....

Niestety program z o2.pl nie jest najlepszy... aktualnie szukam innego serwisu z tv, który nie będzie wyświetlał programu z godzinami np.:
Cytat
06:30 Jakis program
....
18:30 Kolejny
....
23:10 Następny
01:20 I tego nie powinno być


Ten post edytował Tiraeth 14.02.2005, 13:53:16
Go to the top of the page
+Quote Post
grzegorz_g
post 15.02.2005, 11:41:33
Post #7





Grupa: Zarejestrowani
Postów: 259
Pomógł: 0
Dołączył: 26.10.2004

Ostrzeżenie: (0%)
-----


a dało by się wyciągnąc program z takiej strony, chodziło by mi o kategorię sportowe:
http://www.panoramafirm.com.pl/serwis/tv/i...g=pcat&pcat=SPO

mógłbys mi pomóc w przerobienu tej classy.


--------------------
www.wettradar.com
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 16.04.2024 - 05:29