Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] fsockopen()
Forum PHP.pl > Forum > PHP
Babcia@Stefa
Witam, jak rozpoznać która linijka odpowiedzi z serwera jest nagłówkiem czy zawartością pliku/strony?

  1. <?php
  2. while (!feof($this->Connection['socket'])) {
  3. $response_line = fgets($this->Connection['socket'], 2048);
  4.  
  5. if(stristr('\n', substr($response_line, 0, strlen($response_line))))
  6. $response_headers [] = $response_line;
  7. else
  8. $response_text .= $response_line;
  9. }
  10. ?>


Próbowałem za pomocą substr($response_line, strlen($response_line), strlen($response_line)-4) == '\r\n') i nie działało, a więc użyłem testowo stristr - dalej nic ohmy.gif.

Dziękuję, Babcia@Stefa
netmare
A w jakim protokole? W HTTP nagłówek kończy się "\r\n\r\n", więc najłatwiej $offset=strpos($odpowiedz,"\r\n\r\n"), i nagłówek masz do offset +4, a dalej treść, a jak chcesz się bawić w odczytywanie linii, to sprawdzasz czy trim($linia)=='' i do pierwszego wystąpienia jest nagłówek, a po tym treść. Uważaj na transfer-encoding:chunked winksmiley.jpg
Babcia@Stefa
Zanim odpowiedziałeś wykombinowałem coś takiego:

  1. <?php
  2. if(eregi('[^*]:[^*]', $response_line) OR substr($response_line, 0, 5) == 'HTTP/')
  3. ?>


Ale to jest tymczasowe bo może być w kodzie strony np.
  1. <br/>Test: tak
  2. <br/>Test2: nie


Pozdrawiam, Babcia@Stefa
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.