Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]file_get_contents - jak działa?
Forum PHP.pl > Forum > Przedszkole
Meferot
Witam, kontynuując naukę php pomyślałem, że jest pora na zabawę z pobieraniem treści z innych stron winksmiley.jpg
Za zadanie postawiłem sobie coś takiego:
Robię katalog moich filmów, do bazy wprowadzam tytuł i inne pierdoły.
Chciałbym, żeby w momencie pobierania danych z bazy, scrypt automatycznie znalazł link do recenzji tego filmu na filmweb.pl.
Czyli musi wygenerować adres do wyszukiwarki filmweb, pobrać link z pierwszej pozycji która została wyszukana, jeśli film nie zostanie odnaleziony to zwraca fałsz.
Szukałem już na necie, ale nic nie zrozumiałem z tego co było ;/
Ramzaa
Ok, fajnie i miło, ale do czego Ci file_get_contents? Link do przykładowego filmu (Haker) wygląda tak: http://www.filmweb.pl/Haker, więc po prostu dajesz <a href="http://www.filmweb.pl/$nazwa_filmu">$nazwa_filmu</a> i już masz wygenerowany adres smile.gif
Meferot
To już przerabiałem. Tak się nie da bo bardzo mała ilość filmów ma akurat taki adres jak podałeś.

Sprawdziłem to na własny przykładzie. Dodałem sobie film o tytule Zack and Miri make a Porno, na filmweb link wygląda następująco:

http://www.filmweb.pl/film/Zack+i+Miri+kr%...rno-2008-447667

I lipa, więc potorzbuje bardziej rozwiniętego scryptu winksmiley.jpg
Ramzaa
Hm.. z tego co JA się orientuję, takiego skryptu nikt za darmo Ci nie zrobi, a tym bardziej sam sobie z nim nie poradzisz.
Taka mała wskazówka, ale zaczekajmy na mądrzejszych smile.gif
Crozin
1) Jak rozumiem robisz to tylko w celach edukacyjnych, albo masz pozwolenie od FilmWeba na takie kopiowanie treści? Bo nie widzę nigdzie informacji, że treść tam zawarta jest udostępniona do dalszego wykorzystania.
2) Polska język trudna język? Skrypt - w naszym języku też jest takie słówko.

Nie masz do dyspozycji żadnego API udostępnionego przez stronę więc musiałbyś wybierać dane z jej źródła:
1) Przy pomocy file_get_contents/fopen/curla/fsockopen czy jeszcze czegoś innego pobierasz sobie źródło strony z wynikami wyszukiwania: http://www.filmweb.pl/search?q=batman+pocz%C4%85tek http_build_query() i urlencode() będą pomocne przy tworzeniu URLa
2) Przy pomocy wyrażeń regularnych PCRE pobierasz URL do pierwszego wyniku z listy znalezionych filmów
3) Przy pomocy ... pobierasz źródło spod URLa znalezionego w pkt 2
4) Ponownie przy pomocy wyrażeń regularnych pobierasz interesujące Cię dane
Meferot
Ja nie chcę kopiować opisów z filmweba, a jedynie wygenerować sobie link do strony z recenzja na filmweb winksmiley.jpg
Strasznie to zagmatwałeś, rozkminie to prędzej czy później...

@edit:
I po cholerę do tego Ci jakieś sockety? oO
everth
@Meferot a przyszło ci do głowy że twój temat (wybieranie elementów ze strony przy pomocy PHPa) powtarza się tutaj średnio raz lub dwa razy na tydzień?
Meferot
Pisałem już, że te tematy mi nie pomogły.

Szperam dalej na google i teraz bardziej zastanawiam się nad funkcją preg_match niż nad file_get_contents
Crozin
Cytat
Ja nie chcę kopiować opisów z filmweba, a jedynie wygenerować sobie link do strony z recenzja na filmweb
Ahh... w takim razie pkt 4. można wywalić.
Cytat
I po cholerę do tego Ci jakieś sockety? oO
Ponieważ jest to jedyna metoda na pobranie takich danych. Podałem Ci też listę innych funkcji, które możesz wykorzystać (które notabede robią za swego rodzaju "nakładkę" na fsockopen).
everth
@Maferot - może to ci pomoże (po krótkim obejrzeniu źródeł Filmweba myślę że powinno zadziałać)
erix
Zaraz, moment; sockety a fsockopen, to nieco inne rzeczy (w rozumieniu używanych rozszerzeń), więc nie dziwię się, że padło takie pytanie.
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.