Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] pobieranie zawartosci strony przez skrypt
Forum PHP.pl > Forum > PHP
droop
Czy ma ktos moze jakis pomysl jak pobrac zawartosc zewnetrznej strony na serverach gdzie jest wylaczony CURL ?
qqrq
fopen
fsockopen
droop
dzieki za odpowiedz ale niestety te funkcje tez sa wylaczone ...
qqrq
A co za serwer z odzysku questionmark.gif Ludzie...
droop
servery darmowe itd chodzi o skrypt ktory by dzialal u kazdego dlatego szukam kazdego innego mozliwego rozwiazania ...
Blodo
Jak i fsockopen wylaczone to raczej innej opcji nie ma. Sockety sa domyslnie wlaczone w php, tak wiec to najlepsza opcja. Zawsze mozesz tez dorobic system sterownikow, ktory bedzie korzystal z curl kiedy jest dostepne, z socketow kiedy nie jest, lub wyswietlal jakis tam blad jesli i to jest wylaczone.
droop
no i wlasnie szukam tego raczej smile.gif reszta juz jest tak jak napisales :)znalazlem juz 4 darmowe servery o duzym ruchu na ktorym wszystkie z wczesniej wymienionych opcji sa wylaczone

Znalazlem jeszcze jedno raczej tylko mam maly problem
Kod
$link2="tcp://wortal.php.pl:80/";
echo $link2;
$fp = stream_socket_client($link2, $errno, $errstr, 30);
fwrite($fp, "GET /wortal/spolecznosc HTTP/1.1\r\nHost: wortal.php.pl \r\nAccept: */*\r\n\r\n");
while (!feof($fp)) {
        echo fgets($fp, 1024);
}
fclose($fp);

strona sie wyswietla ale na poczatku strony wyswietla sie header
Kod
tcp://wortal.php.pl:80/HTTP/1.1 200 OK Date: Fri, 07 Sep 2007 09:52:50 GMT Server: Apache/1.3.33 (Unix) PHP/4.4.1 mod_ssl/2.8.24
OpenSSL/0.9.7e X-Powered-By: eZ publish Set-Cookie: PHPSESSID=12388e488d0bdba1796408cfa9f2777b; path=/ Expires: Mon, 26 Jul 1997
05:00:00 GMT Cache-Control: no-cache, must-revalidate Pragma: no-cache Last-Modified: Fri, 07 Sep 2007 09:52:50
GMT Content-language: pol-PL Transfer-Encoding: chunked Content-Type: text/html; charset=iso-8859-2 83d3

jakis pomysl jak zrobic zeby tego nie bylo nie liczac usuniecia normalnie tekstu tj substr() poniewaz dlugosc tego jest zmienna w zaleznosci od strony
Kicok
nagłówek kończy się dwoma enterami. Zawsze. Różnice mogą być tylko w zapisie tych enterów (może to być "\r\n\r\n", a może "\n\n"). Dlatego przepuść sobie otrzymane dane przez taką funkcję str_replace:
  1. <?php
  2.  
  3. $tekst = str_replace( array( "r\n", "r" ), "\n", $tekst );
  4.  
  5. ?>


Teraz już wszystkie entery będziesz miał zapisane jako "\n"
droop
niestety podana przez ciebie propozycja jest dla mnie niezrozumiala tongue.gif
ja chce usunac calkowicie ten naglowek zeby sie nie pokazywal a nie formatowac tekst
dedi2
Może tak?

  1. <?php
  2. $url='http://www.onet.pl';
  3. $strona=file_get_contents($url);
  4. echo $strona;
  5. ?>
Kicok
Cytat
niestety podana przez ciebie propozycja jest dla mnie niezrozumiala


No więc napiszę jeszcze raz, że nagłówek zawsze kończy się dwoma enterami (dwoma znakami nowego wiersza).


Znak nowego wiersza, to:
- \r\n (Windows)
- \n (Linux)
- \r (Mac)

NIE WIESZ jak będą zapisane znaki nowego wiersza w tekście, który otrzymasz. W związku z tym napisałem ci kod, który zamieni dowolnie zapisany znak nowego wiersza na \n (Linux).
Teraz twoje zadanie ogranicza się do znalezienia pierwszego wystąpienia dwóch enterów (\n\n) w tekście. Będziesz wtedy wiedział, że wszystko co jest przed tym to nagłówki, a wszystko co jest za tym to treść strony.


Pomocne funkcje: strpos" title="Zobacz w manualu PHP" target="_manual + substr" title="Zobacz w manualu PHP" target="_manual lub explode" title="Zobacz w manualu PHP" target="_manual (zwróć uwagę na trzeci parametr tej funkcji)

Uwaga: Żeby \n oznaczało znak nowego wiersza, musi być zapisane w cudzysłowie ("), a nie w apostrofach (')
droop
ano teraz rozumiem smile.gif dzieki za wytlumaczenie
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.