Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Pobranie danych ze strony i porównanie tablic
Forum PHP.pl > Forum > PHP
yan
Witam

Piszę tu, ponieważ chcę usłyszeć rady jak rozwiązać to co chcę zrobić.

Posiadam stronę na własny użytek na localhoscie z takim jakby katalogiem filmów. Chcę stworzyć tam dodatkową podstronę z programem TV, ale aby program ten wyświetlał tylko filmy które mam w bazie danych.
Wymyśliłem aby działało to w pewien sposób, ale wydaje mi się, że nie jest to najodpowiedniejsze rozwiązanie, daltego proszę o wasze rady.

1. Pobieram źródło strony http://www.filmweb.pl/guide/TVN
i teraz interesują mnie dane z tego fragmentu
  1. <div class="channel first">
  2. <div class=singleChannelProg>
  3. <div class=recommProgList>
  4. <div class="singleProg seance seance_film">
  5. <a class="filmPoster fNoImg5" href="/film/Bardzo+dziki+Zach%C3%B3d-1999-732"> <img src="http://1.fwcdn.pl/po/07/32/732/7253124.4.jpg"> </a>
  6. <p><a href="/film/Bardzo+dziki+Zach%C3%B3d-1999-732" title="Bardzo dziki Zach&oacute;d (1999)">Bardzo dziki Zach&oacute;d (1999)</a> <span class=timeInfo> <span class=hour>20:00</span>
  7. <span class=filmTime> 1g. 47m.</span> </span> <em>western</em></p><span class=duration>107</span></div>
  8. <div class="singleProg seance seance_film"><a class="filmPoster fNoImg5" href="/Brunet.Wieczorowa.Pora"> <img src="http://1.fwcdn.pl/po/11/71/1171/7415105.4.jpg"> </a>
  9. <p><a href="/Brunet.Wieczorowa.Pora" title="Brunet wieczorową porą (1976)">Brunet wieczorową porą (1976)</a> <span class=timeInfo> <span class=hour>16:10</span>
  10. <span class=filmTime> 1g. 29m.</span> </span> <em>komedia</em></p><span class=duration>89</span></div>
  11. <div class="singleProg seance seance_film"><a class="filmPoster fNoImg5" href="/film/Egzamin+dojrza%C5%82o%C5%9Bci-2004-39629"> <img src="http://1.fwcdn.pl/po/96/29/39629/6957027.4.jpg"</a>
  12. <p><a href="/film/Egzamin+dojrza%C5%82o%C5%9Bci-2004-39629" title="Egzamin dojrzałości (2004)">Egzamin dojrzałości (2004)</a> <span class=timeInfo> <span class=hour>22:05</span>
  13. <span class=filmTime> 1g. 33m.</span> </span> <em>komedia</em></p><span class=duration>93</span></div>
  14. <div class="singleProg seance seance_film"><a class="filmPoster fNoImg5" href="/film/Poszukiwacze+%C5%9Bwi%C4%99tej+w%C5%82%C3%B3czni-2010-549894"> <img src="http://1.fwcdn.pl/po/98/94/549894/7361122.4.jpg"> </a>
  15. <p><a href="/film/Poszukiwacze+%C5%9Bwi%C4%99tej+w%C5%82%C3%B3czni-2010-549894" title="Poszukiwacze świętej wł&oacute;czni (2010)">Poszukiwacze świętej wł&oacute;czni (2010)</a>
  16. <span class=timeInfo> <span class=hour>11:00</span> <span class=filmTime> 2g. </span> </span> <em>film przygodowy</em></p><span class=duration>120</span></div>
  17. <div class="singleProg seance seance_film"><a class="filmPoster fNoImg5" href="/film/Cela+2-2009-484547"> <img src="http://1.fwcdn.pl/po/45/47/484547/7260145.4.jpg"> </a>
  18. <p><a href="/film/Cela+2-2009-484547" title="Cela 2 (2009)">Cela 2 (2009)</a> <span class=timeInfo> <span class=hour>23:55</span>
  19. <span class=filmTime> 1g. 34m.</span> </span> <em>horror</em></p><span class=duration>94</span></div></div>
  20. <div class="channelHead stdBar"><a title=TVN href="/guide/TVN" class="tvChannelIco tvChannel_4">TVN</a> <span class=weekDay> Sobota </span> <span class=startDayHour style="display:none;">5</span></div>
  21. <div class="singleProg seance seance_other"><span class=timeInfo> <span class=hour>06:40</span> </span>
  22. <p>Uwaga!<br><em>program interwencyjny odc. 3481</em></p><span class=duration>60</span></div>
  23. <div class="singleProg seance seance_other"><span class=timeInfo> <span class=hour>07:00</span> </span>
  24. <p>Mango - Telezakupy<br><em></em></p><span class=duration>60</span></div>
  25. <div class="singleProg seance seance_other"><span class=timeInfo> <span class=hour>08:00</span> </span>
  26. <p>Kobieta na krańcu świata 3<br><em>program podr&oacute;żniczo-rozrywkowy odc. 4/8</em></p><span class=duration>60</span></div>
  27. <div class="singleProg seance seance_other"><span class=timeInfo> <span class=hour>08:35</span> </span>
  28. <p>Dzień dobry TVN<br><em>magazyn odc. 623</em></p><span class=duration>60</span></div></div></div></div></div></div>

Chcę aby do tablicy zostały zapisane dane (zapewne trzeba zrobić to w tablicy wielowymiarowej, bo potrzebuję wszystkie dane mieć oddzielnie): link do filmu, godzina emisji oraz nazwa kanału

Danę muszę pobrać z około 8 kanałów, czyli osiem razy muszę pobrać kod, wyciągnąc dane i zapisać do tablicy. I teraz pytanie wydaje mi się, że będę musiał zrobić to z pomocą preg_match_all i zapisać do tablicy, ale czy jak zrobie to 8 razy to dane będą się nadpisywać czy jest możliwość, aby były one dopisywane jako kolejne do już istniejących?

2. Z mojej bazy danych pobieram linki do filmów (linki do filmweb są już wykorzystywane do czegość innego, więc mam je w bazie) i zapisuje je do tablicy.
3. Porównuje obie tablice na podstawie linków i zostawiam tylko wyniki w których link jest w obu tablicach.
4. Pobieram dodatkowe dane z bazy tylko do wyników z nowej uszczuplonej tablicy
5. Wyświetlam potrzebne dane na stronie.

Jestem początkujący w php i założe się, że to co wymyśliłem i napisałem wyżej jest robione trochę na około i pewnie elementy być może są niepotrzebne, dlatego proszę o pomoc i wskazówki jak to rozwiązać lepiej?

Nie wiem też, czy temat ten powinien znaleźć się tu czy w dziale przedszkole, dlatego w razie czego proszę moderatora o przeniesienie.
L00zak
przykład wyciągnięcia z załączonej strony tytułu do tablicy $name, poczytaj o wyrażeniach regularnych, a z tablicy wyciągasz dane przez foreach, jak pokombinujesz to zrobisz jedną tablicę ze wszystkimi danymi

  1. <?
  2. preg_match_all("|title=\"(.*)\"|U", $strona_z_programem, $name);
  3. ?>
yan
No właśnie, ale tym wyciągnę tylko tytuł. Takie coś potrafie, ale czy jest możliwość aby takim jednym preg_match_all wyciągnąć wszystkie potrzebne mi dane które wymieniłem wcześniej na raz do tablicy?
L00zak
dostosuj do swoich potrzeb:

  1. <?
  2. preg_match('#<input type="hidden" name="seed" id="seed" value="(.+)" />.*<input type="hidden" name="__STATE" id="__STATE" value="(.+)" />.*<input type="hidden" name="__VIEWSTATE" id=".*" value="" />.*<input type="hidden" name="__EVENTVALIDATION" id="__EVENTVALIDATION" value="(.+)" />#isU', $dane, $a);
  3. ?>

(.+) - te punkty Cię interesują
.* - śmieci pomiędzy nimi


pzdr
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.