[PHP] Pobieranie danych z tabel HTML i wyświetlanie?

Witam, dzisiejszy problem jest związany z takim zwanym przypomniaczem/informatorem czyli chodzi mi… już opisuje.

Chce zrobić w PHP informację o której jest program, mam narazie w stylu ręcznym czyli wszystko muszę wpisywać do programu php, tak jak w tym przypadku.

<?php

$godzina = date ("d:m:Y:H:i"); 




if ($godzina >= "28:10:2010:6:25" && $godzina < "28:10:2010:7:15")

{

echo "Trwa audycja w Discovery Channel!";

}



elseif ($godzina >= "28:10:2010:15:10" && $godzina < "28:10:2010:16:10")

{

echo "Trwa audycja w DMAX!";

}



elseif ($godzina >= "28:10:2010:16:25" && $godzina < "28:10:2010:17:15")

{

echo "Trwa audycja w Discovery Channel!";

}



elseif ($godzina >= "28:10:2010:20:15" && $godzina < "28:10:2010:21:15")

{

echo "Trwa audycja w DMAX!";

}



elseif ($godzina >= "29:10:2010:06:15" && $godzina < "29:10:2010:07:05")

{

echo "Trwa audycja w Discovery Channel!";

}



elseif ($godzina >= "29:10:2010:15:10" && $godzina < "29:10:2010:16:10")

{

echo "Trwa audycja w DMAX!";

}



elseif ($godzina >= "29:10:2010:16:20" && $godzina < "29:10:2010:17:10")

{

echo "Trwa audycja w Discovery Channel!";

}



elseif ($godzina >= "30:10:2010:05:25" && $godzina < "30:10:2010:06:10")

{

echo "Trwa audycja w RTL II!";

}



elseif ($godzina >= "30:10:2010:06:10" && $godzina < "30:10:2010:07:05")

{

echo "Trwa audycja w RTL II!";

}



elseif ($godzina >= "31:10:2010:16:10" && $godzina < "31:10:2010:17:10")

{

echo "Trwa audycja w DMAX!";

}



elseif ($godzina >= "01:11:2010:04:50" && $godzina < "01:11:2010:05:55")

{

echo "Trwa audycja w RTL II!";

}



elseif ($godzina >= "01:11:2010:05:25" && $godzina < "01:11:2010:06:15")

{

echo "Trwa audycja w Discovery Channel!";

}



elseif ($godzina >= "01:11:2010:15:05" && $godzina < "01:11:2010:16:10")

{

echo "Trwa audycja w DMAX!";

}



elseif ($godzina >= "01:11:2010:16:15" && $godzina < "01:11:2010:17:05")

{

echo "Trwa audycja w Discovery Channel!";

}



elseif ($godzina >= "01:11:2010:21:05" && $godzina < "01:11:2010:21:55")

{

echo "Trwa audycja w Discovery Channel!";

}



elseif ($godzina >= "02:11:2010:03:35" && $godzina < "02:11:2010:04:20")

{

echo "Trwa audycja w Discovery Channel!";

}



elseif ($godzina >= "02:11:2010:03:45" && $godzina < "02:11:2010:04:40")

{

echo "Trwa audycja w RTL II!";

}



elseif ($godzina >= "02:11:2010:06:00" && $godzina < "02:11:2010:06:50")

{

echo "Trwa audycja w Discovery Channel!";

}



elseif ($godzina >= "02:11:2010:12:00" && $godzina < "02:11:2010:12:50")

{

echo "Trwa audycja w Discovery Channel!";

}



elseif ($godzina >= "02:11:2010:15:05" && $godzina < "02:11:2010:16:05")

{

echo "Trwa audycja w DMAX!";

}



elseif ($godzina >= "02:11:2010:16:10" && $godzina < "02:11:2010:17:05")

{

echo "Trwa audycja w Discovery Channel!";

}



elseif ($godzina >= "03:11:2010:04:00" && $godzina < "03:11:2010:04:45")

{

echo "Trwa audycja w RTL II!";

}



elseif ($godzina >= "03:11:2010:06:15" && $godzina < "03:11:2010:07:05")

{

echo "Trwa audycja w Discovery Channel!";

}



elseif ($godzina >= "03:11:2010:15:00" && $godzina < "03:11:2010:16:05")

{

echo "Trwa audycja w DMAX!";

}



elseif ($godzina >= "03:11:2010:16:15" && $godzina < "03:11:2010:17:05")

{

echo "Trwa audycja w Discovery Channel!";

}



elseif ($godzina >= "04:11:2010:05:55" && $godzina < "04:11:2010:06:45")

{

echo "Trwa audycja w Discovery Channel!";

}



elseif ($godzina >= "04:11:2010:15:00" && $godzina < "04:11:2010:16:05")

{

echo "Trwa audycja w DMAX!";

}



elseif ($godzina >= "04:11:2010:16:05" && $godzina < "04:11:2010:16:55")

{

echo "Trwa audycja w Discovery Channel!";

}



elseif ($godzina >= "04:11:2010:20:15" && $godzina < "04:11:2010:21:15")

{

echo "Trwa audycja w DMAX!";

}









else

{

echo "Brak audycji";

}



?>[/code]

ale chce zrobić aby skrypt php sam pobierał informacje z tabel HTML z tej strony http://www.fernsehserien.de/index.php?s … 00#details i wyświetlało tak samo jak w stylu ręcznym.

Bardzo proszę o pomoc.

Pozdrawiam

http://php.net/manual/en/function.file-get-contents.php

  • wyrażenia regularne (google -> wyrażenia regularne php), żeby obciąć pobrane dane, bo to “zassie” całą zawartość pod danym url.

Może to: DOMDocument::loadHTMLFile?

Chcesz pobierać te dane ze strony na zewnętrznym serwerze przy każdej odsłonie Twojej strony?

Nie lepiej stworzyć dwa pliki - jeden zapisujący dane do bazy (w bazie np. pięć pól (id, kanał, tytuł i dwa timestampy (początek i koniec)) / ew. do pliku) i drugi wyświetlający te dane (czyli strona, którą masz, z tym że musi pobrać dane z bazy/pliku). Pierwszy możesz odpalać np. co tydzień (CRON albo zaincludować go do drugiego pod warunkiem, że różnica między aktualną datą i ostatnią aktualizacją przekroczy pewną wartość)

Chodzi Ci żeby jeden plik łączył się z stroną z danymi i zapisywał zebrane dane do bazy danych MySQL?

Dobry pomysł! Tylko jak to zrobić?

Albo pobrać stronę, i ją traktować jak bazę danych. Bo nie chce mi się wszystkich danych przepisywać do mojego skryptu PHP :stuck_out_tongue:

Chodzi Ci żeby jeden plik łączył się z stroną z danymi i zapisywał zebrane dane do bazy danych MySQL?

Dobry pomysł! Tylko jak to zrobić?

Albo pobrać stronę, i ją traktować jak bazę danych. Bo nie chce mi się wszystkich danych przepisywać do mojego skryptu PHP :stuck_out_tongue:

Dokładnie to mam na myśli. Dane, które chcesz pobrać raczej nie mają tendencji do częstych zmian i chyba aktualizacja raz na tydzień/dwa wystarczy. Jak? Jeśli już wyciągniesz je do właściwych zmiennych - tablic (co i tak musiałbyś zrobić np. RegExp’ami albo poprzez DOM) to zapisanie tego do bazy nie powinno być problemem.

I tak musisz powyciągać konkretne dane, więc lepiej zrobić to raz (i uporządkowane zapisać w bazie) niż wykonywać przy każdej wizycie. Proponuję unikać bezsensownego powtarzania niektórych czynności (ze względu na wydajność i czas wczytywania takiej strony), dlatego parsowanie za każdym razem tego samego pliku czy pobieranie strony z innego serwera raczej nie jest dobrym pomysłem.

Tego chcesz przecież uniknąć… i pośrednictwo bazy nie ma nic do tego.

A mógłbyś mi pomóc w napisaniu tego programu w PHP, sam sobie nie poradzę, stworzyłem już strukturę bazy, dobrze jest?

Możesz zrobić jak chcesz. Osobiście użyłbym czegoś zbliżonego do tego:

CREATE TABLE `mythbusters` (

`id` INT( 10 ) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY ,

`program` VARCHAR( 255 ) NOT NULL ,

`start` DATETIME NOT NULL ,

`stop` DATETIME NOT NULL

) ENGINE = MYISAM ;

Pomóc oczywiście mogę, ale wszystkiego za Ciebie nie zrobię. Trudnością tutaj będzie wyciągnięcie danych i uporządkowanie ich w tablicach. Masz podane już dwa sposoby. Jeżeli nie miałeś do czynienia z DOM np. w skryptach JS to raczej postaw na wyrażenia regularne (w sieci jest mnóstwo poradników na ten temat, tu masz opisane funkcje PHP)

Dziękuje za nawą strukturę bazy :slight_smile:

A mógłbyś mi pomóc napisać skrypt który pobiera i zapisuje dane do bazy danych MySQL, a wyświetlanie z bazy już sam bym zrobił :slight_smile:

Potraktuj to jako schemat - możliwe, że zawiera jakieś błędy (szczególnie funkcje obsługujące bazę danych bo nie mogłem ich testować).

//pobierasz kod strony$page = file_get_contents('http://www.fernsehserien.de/index.php?serie=9840sender=0seite=6start=4000#details');

Najlepiej pochwal się gotowym kodem