Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Fsockopen - jedno połączenie, dwa żądania
Babcia@Stefa
post
Post #1





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

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


Witam, czy da się w PHP poprzez funkcję fsockopen()" title="Zobacz w manualu PHP" target="_manual wysłać dwa żądania do serwera i odebrać obydwa ?

  1. <?php
  2. $fp = fsockopen("www.example.com", 80, $errno, $errstr, 30);
  3. if (!$fp) {
  4. echo "$errstr ($errno)<br />\n";
  5. } else {
  6. $out = "GET / HTTP/1.1r\n";
  7. $out .= "Host: www.example.comr\n";
  8. $out .= "Connection: Closer\nr\n";
  9.  
  10. fwrite($fp, $out);
  11. while (!feof($fp)) {
  12. echo fgets($fp, 128);
  13. }
  14. fclose($fp);
  15. }
  16. ?>


A jak bym chciał jeszcze pobrać obrazek.gif?

To jeden z nagłówków by się zmienił:

  1. <?php
  2. $out = "GET /obrazek.gif HTTP/1.1r\n";
  3. ?>


Ale pytanie:
Czy mogę obydwa elementy pobrać bez ponownego łączenia (wywoływania fclose()" title="Zobacz w manualu PHP" target="_manual, i fsockopen()" title="Zobacz w manualu PHP" target="_manual odnowa)

Próbowałem trochę ale... nic nie wyszło, a zależy mi na tym (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

@edit
Forum obcina \ przy \r, proszę o zamianę w Waszym edytorze tekstowym.

Dziękuję, Babcia@Stefa

Ten post edytował Babcia@Stefa 12.05.2008, 20:07:00
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
Kicok
post
Post #2





Grupa: Zarejestrowani
Postów: 1 033
Pomógł: 125
Dołączył: 17.09.2005
Skąd: Żywiec

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


Powinno się dać.

Sprawdź sobie w słowniku co oznacza "Connection: Close" (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)
Jeśli skrypt nadal nie będzie chciał wysłać dwóch żądań, to wklej tu swoje wypociny i poszukamy błędów.
Go to the top of the page
+Quote Post
netmare
post
Post #3





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

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


http://netmare.ovh.org/myurl.zip
masz gotowca (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) , opis lipny ale dojdziesz po kodzie, a i coś tam chyba pogmatwałem przy post przesyłaniu POST dalej niż o jedno location
kiedyś wałkowałem temat do brute'a (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post
Babcia@Stefa
post
Post #4





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

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


Kod
Connection: Close

Wcześniej wywaliłem ale też nie hulało, chyba że modem chello się zawiesił - jak się zawiesi to nawet localhost nie działa - ale po serwisie się jeszcze odwiesza (wcześniej potrzebny był reset kompa i modemu, sam modem jak się zresetował to nic nie dawało)...

Co do tego słownika to nie rób ze mnie pajaca (IMG:http://forum.php.pl/style_emoticons/default/haha.gif) , każdy wie co to znaczy, moim tłumaczeniem znaczy to:
Cytat
Połączenie: Zamknięte


Netmare, to jest dość duża klasa, a więc..? (Moja klasa - piszę własną do obsługi połączeń pomiędzy serwerowych)

@edit
W tej Twojej klasie jest straszny bałagan ^^,
Spróbuj też trochę używać funkcji wbudowanych w PHP jak parse_url()" title="Zobacz w manualu PHP" target="_manual, pathinfo()" title="Zobacz w manualu PHP" target="_manual (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

@edit
  1. <?php
  2. $fp = fsockopen("boo.pl", 80, $errno, $errstr, 30);
  3. if (!$fp) {
  4. echo "$errstr ($errno)<br />\n";
  5. } else {
  6. $out = "GET /?regulamin HTTP/1.1r\n";
  7. $out .= "Host: localhostr\n";
  8.  
  9. fwrite($fp, $out);
  10. while (!feof($fp)) {
  11. echo fgets($fp, 128);
  12. }
  13.  
  14. $out = "GET / HTTP/1.1r\n";
  15. $out .= "Host: localhostr\n";
  16. $out .= "Connection: Closer\nr\n";
  17.  
  18. fwrite($fp, $out);
  19. while (!feof($fp)) {
  20. echo fgets($fp, 128);
  21. }
  22.  
  23. fclose($fp);
  24. }
  25. ?>


Taki kod testowy, ale zauważyłem że pierwsza pętla wykonuje się w nieskończoność, tak więc?
Może pytać o nagłówek który wskaże wielkość dokumentu i w pętli będzie sumować wielkość każdej linijki, jeśli suma = ten nagłówek. break;

Ale jak tego dokonać? (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)

@edit
To co pisałem jest dosyć trudne jak narazie...

Dziękuję, Babcia@Stefa

Ten post edytował Babcia@Stefa 13.05.2008, 17:50:20
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 25.08.2025 - 07:48