Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: fsockopen zamiast file...
Forum PHP.pl > Forum > Przedszkole
flasht
Witam!

Jak za pomoca fsockopen zrealizowac cos co dziala dokladnie tak samo jak $strona = file('http://adres_strony') ? Zeby wkladal do array kazda linijke oddzielnie...

Z gory dziekuje!
Pozdrawiam.
NuLL
Nie lepiej za pomocą fopen ?

Co do pytania:

Otwierasz plik, piszesz prostego while'a czytającego plik linia po linii i po wszystkim.
ActivePlayer
  1. <?php
  2.  
  3. $fp = pfsockopen(&#092;"www.strona.pl\", 80, $errno, $errstr);
  4. if (!$fp) {
  5.  echo &#092;"$errstr ($errno)<br/>n\";
  6. } else {
  7.  fputs($fp, &#092;"GET /folder/plik.htm HTTP/1.1rn\");
  8.  fputs($fp, &#092;"Host: www.strona.plrn\");
  9.  fputs($fp, &#092;"Connection: closernrn\");
  10.  fwrite($fp, $out);
  11.  while (!feof($fp)) {<p></p>
  12.  $cache .= fgets($fp, 128);
  13.  }
  14.  fclose($fp);
  15. }
  16. echo $cache;
  17.  
  18. ?>
flasht
Cytat(ActivePlayer @ 2005-06-12 21:14:49)
  1. <?php
  2.  
  3. $fp = pfsockopen(&#092;"www.strona.pl\", 80, $errno, $errstr);
  4. if (!$fp) {
  5.    echo &#092;"$errstr ($errno)<br/>n\";
  6. } else {
  7.    fputs($fp, &#092;"GET /folder/plik.htm HTTP/1.1rn\");
  8.    fputs($fp, &#092;"Host: www.strona.plrn\");
  9.    fputs($fp, &#092;"Connection: closernrn\");
  10.    fwrite($fp, $out);
  11.    while (!feof($fp)) {<p></p>
  12.        $cache .= fgets($fp, 128);
  13.    }
  14.    fclose($fp);
  15. }
  16. echo $cache;
  17.  
  18. ?>

Bylbym wdzieczny za czytanie tego co napisalem. Problem nie polega w tym jak uzyc fsockopen ale jak to zrobic zeby wynik zostal wwalony do array z oryginalnym rozdzieleniem linijek jak przy file.

A co do pytania czy nie lepiej fopen to raczej nie lepiej, bo pewnie wystepuje ten sam problem - ze jesli na serwerze jest jakies przekierowanie typu: http://nbp.pl -> http://nbp.pl/home.aspx to mowi 404 - not found.
NuLL
To sobie prezrób ten skrypt - podmiana jednej max. 2 linii.
flasht
Cytat(NuLL @ 2005-06-13 09:21:45)
To sobie prezrób ten skrypt - podmiana jednej max. 2 linii.

Gdybym wiedzial jak, to bym nie wysylal tego posta na forum php początkujący... ;-( Nie naleze do takich osob co to pierw pytaja a pozniej szukaja chyba ze chodzi o konkretne funkcje. A powyzszy przyklad to juz dawno probowalem na wszelakie sposoby przerabiac bo na php.net zagladam przed php.pl.

Pozdrawiam.
NuLL
Dam sobie obciąć głowę za to że na php.net nawet nie zaglądnąłeś. I nie udawaj, że jesteś początkujący. Początkujący może i jesteś, ale barziej niż początkujący jesteś LENIWY - następny topic tego typu i dostaniesz ostrzeżenie - i jak mi się przypomni to jeszcze za ten temat drugie.
  1. <?php
  2.  
  3. function myFile($adres){
  4. $cache=array();
  5.  
  6. $fp = pfsockopen($adres, 80, $errno, $errstr);
  7. if (!$fp) {
  8.  echo &#092;"$errstr ($errno)<br/>n\";
  9. } else {
  10.  fputs($fp, &#092;"GET /folder/plik.htm HTTP/1.1rn\");
  11.  fputs($fp, &#092;"Host: \".$adres.\"rn\");
  12.  fputs($fp, &#092;"Connection: closernrn\");
  13.  fwrite($fp, $out);
  14.  while (!feof($fp)) {
  15.  $cache[]= fgets($fp, 128);
  16.  }
  17.  fclose($fp);
  18. }
  19. return $cache;
  20. }
  21. ?>
flasht
Cytat(NuLL @ 2005-06-13 09:44:52)
Dam sobie obciąć głowę za to że na php.net nawet nie zaglądnąłeś. I nie udawaj, że jesteś początkujący. Początkujący może i jesteś, ale barziej niż początkujący jesteś LENIWY - następny topic tego typu i dostaniesz ostrzeżenie - i jak mi się przypomni to jeszcze za ten temat drugie.
  1. <?php
  2.  
  3. function myFile($adres){
  4. $cache=array();
  5.  
  6. $fp = pfsockopen($adres, 80, $errno, $errstr);
  7. if (!$fp) {
  8.    echo &#092;"$errstr ($errno)<br/>n\";
  9. } else {
  10.    fputs($fp, &#092;"GET /folder/plik.htm HTTP/1.1rn\");
  11.    fputs($fp, &#092;"Host: \".$adres.\"rn\");
  12.    fputs($fp, &#092;"Connection: closernrn\");
  13.    fwrite($fp, $out);
  14.    while (!feof($fp)) {
  15.        $cache[]= fgets($fp, 128);
  16.    }
  17.    fclose($fp);
  18. }
  19. return $cache;
  20. }
  21. ?>

Nie bede tutaj rozpoczynal zadnej wojny, szczegolnie ze jestem z gory na przegranej pozycji. Skoro nie zagladalem to powiedz mi jedno... Skad niby wiem ze kod podany przez ActivePlayer'a pochodzi wlasnie z php.net?questionmark.gif To ze 999 osob na 1000 pierw pyta a z tego 9/999 w ogole szuka a nie pyta dalej nie znaczy ze ja jestem jedna z nich! Niby skad ja mialem wiedziec ze da sie tak zrobic: "$cache=array();" questionmark.gif? Droga jaka szedlem zgodnie ze wskazowkami google raczej kierowala mnie w strone explode wzgledem \n i \nr co bylo totalna bzdura i w ogole nie dzialalo!

No koniec wywodu nie na temat.
Dziekuje za pomoc.
Pozdrawiam.
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.