Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] fsockopen(), Nagłówki czy tekst?
Babcia@Stefa
post 8.05.2008, 15:10:22
Post #1





Grupa: Zarejestrowani
Postów: 654
Pomógł: 17
Dołączył: 19.03.2006
Skąd: z kosmosu ;)

Ostrzeżenie: (0%)
-----


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


--------------------
Środowisko testowe (desktop) - Gedit, lighttpd, sftp, rsync, xfce4-terminal, chromium, firefox4 | System: Gentoo ~x86
O'Neill - serwer WWW @ lighttpd, links, nano, rsyncd, sftpd | System: Debian
Go to the top of the page
+Quote Post
netmare
post 8.05.2008, 16:11:51
Post #2





Grupa: Zarejestrowani
Postów: 285
Pomógł: 37
Dołączył: 18.12.2007
Skąd: Łódź

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
Babcia@Stefa
post 8.05.2008, 16:15:31
Post #3





Grupa: Zarejestrowani
Postów: 654
Pomógł: 17
Dołączył: 19.03.2006
Skąd: z kosmosu ;)

Ostrzeżenie: (0%)
-----


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

Ten post edytował Babcia@Stefa 8.05.2008, 16:16:37


--------------------
Środowisko testowe (desktop) - Gedit, lighttpd, sftp, rsync, xfce4-terminal, chromium, firefox4 | System: Gentoo ~x86
O'Neill - serwer WWW @ lighttpd, links, nano, rsyncd, sftpd | System: Debian
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 20.04.2024 - 03:30