Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Pobranie strony przez file_get_contents()
Forum PHP.pl > Forum > Przedszkole
tofik1778983
Witam.
Mam problem z funkcją file_get_contents() a raczej z pobraniem strony "X".
strona "X" to portal z nowościami filmowymi, premierami w kinach itd...
Na serwerze lokalnym WebServ działa jak trzeba pobiera stronę "X" natomiast na moim zewnętrznym (webd) wywala błąd:
Kod
Warning: file_get_contents(http://jakistam.adres.pl) [function.file-get-contents]: failed to open stream: Connection timed out in /home/tofik177/public_html/tmp/getfilecontest/index.php on line 4


Sprawdziłem pobierając inną stronę np onet.pl i te strony pobiera normalnie.. problem tylko z tą stroną "X"
Sprawdziłem na 2 innych serwerach i na nich tą samą strone pobiera normalnie praktycznie od razu.
Czyżby mój administrator blokował tą stronę questionmark.gif Napisałem do nich czy ta funkcja jest blokowana, albo dana strona i powiedzieli że nie.
To ja już nie wiem..
Co może być przyczyną questionmark.gif
erix
Cytat
Czyżby mój administrator blokował tą stronę

A nie wpadłeś na to, że konkretny host może blokować Twój serwer?
tofik1778983
No wpadłem, ale po co mieli by kogokolwiek blokowaćquestionmark.gif to nie jest jakaś nie wiadomo jaka strona co ma być super zabezpieczona..
Dobra a jakaś alternatywna metoda pobrania strony questionmark.gif
Wicepsik
Cytat(tofik1778983 @ 13.07.2010, 20:22:15 ) *
No wpadłem, ale po co mieli by kogokolwiek blokowaćquestionmark.gif

Aby jakaś niepożądana osoba nie skopiowała informacji z tej strony ?
siurek22
sprawdz jeszcze przez fsockopen/curl jak nie da rady to zrob sobie serwer posredni(zagraniczny) ktory bedzie pobieral to co chcesz
tofik1778983
fsockopen()
Kod
arning: fsockopen() [function.fsockopen]: unable to connect to http://onet.pl:80 (Unable to find the socket transport "http" - did you forget to enable it when you configured PHP?) in /home/tofik177/public_html/tmp/test/index.php on line 4

Sprawdziłem ustawienia i rzeczywiście w ustawieniach php "Registered Stream Socket Transports" nie mam protokołu http..
zaraz sprawdze curl

Z tym serwerem pośrednim dobry pomysł bo mam jeszcze dwa na których testowalem file_get_contents() i tam ściagało..
Tylko jak zsynchronizować skrypty na róznych serwerach questionmark.gif chyba przydał by się chyba cron hmm??
siurek22
ustawiasz sobie skrypt na serwie który pobiera treść strony i wyświetla a drugi robi to samo tylko ze dla adresu http://twojserw.pl/?url=http://www.wp.pl
wada tego rozwiązania to opóźnienie które zwiększy czas oczekiwania...
kapuch
Na moj gust wystarczy na serwerze posrednim dac skrypcik ktory echuje file_get_contents() z interesujacej cie strony, a na tej wlasciwej stronie pobierac curlem dane z serwera posredniego.
Tak mi sie wydaje.

EDIT:
@up - sekundy, ah ten moj refleks szachisty biggrin.gif
tofik1778983
Dzieki Panowie ;] na to już mam patent, na razie jeszcze sprawdzę czy curl pobierze jak nie to zrobie przekierowanie prze inny serwer, ale to za jakąś godzinkę ;]
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.