WordPress

Witaj Gościu ( Zaloguj | Rejestruj )

Każdy temat założony w ewidentnie złym dziale będzie usuwany! Proszę czytać opisy działów i regulamin!

 
Reply to this topicStart new topic
> Status gg - szybkie sprawdzanie
exway
post 24.4.2006 - 19:26
Post #1


aktywność:
***

Grupa: +Bloger
Postów: 52

Nr: 464



Wiadomo gg czasem lubi miec problemy, do tej pory mialem taki kod :
KOD
<?php

$plik = fopen ("http://www.gadu-gadu.pl/users/status.asp?id=3148881&styl=2", "r");
$status = fgets($plik, 2);
if ($status)
{
echo '<img src=" http://sebastianpietrzak.com/bimg/'.$status.'.jpg" alt="Numer gg : 3148881" ><img src=" http://sebastianpietrzak.com/bimg/nrgg.jpg" >';
}else
echo '<img src="error.jpg">';
?>


No i jesli serwer jest w pelni sprawny nie ma z tym problemow i wszystko dziala, gorzej jest wtedy kiedy serwer muli i muli i nic sie przez to nie otwiera tak wiec to rozwiazanie odpada.

Pytanie brzmi czy nie da sie usprawnic tego kodu tak aby sprawdzal tylko to http://www.gadu-gadu.pl/users/status.asp?id=3148881&styl=2 przez poweidzmy 2 sekundy i jak nie zwroci tego w tym czasie to zwraca wartosc 0 ?
Go to the top of the page
 
+Quote Post
MalCom
post 25.4.2006 - 02:16
Post #2


aktywność:
****

Grupa: Redakcja
Postów: 165

Nr: 179



Hmm, funkcja otwierająca socket ma możliwośc ustawienia timeout'a wink.gif
Poniższy kod powinien działać poprawnie:
KOD
<?php

$fp = fsockopen("status.gadu-gadu.pl", 80, $errno, $errstr, 2);
if ($fp) {
   $out = "GET /users/status.asp?id=3148881&styl=2 HTTP/1.1\r\n";
   $out .= "Host: status.gadu-gadu.pl\r\n";
   $out .= "Connection: Close\r\n\r\n";

   fwrite($fp, $out);
   while (!feof($fp)) {
       $in .= fgets($fp, 128);
   }
   fclose($fp);

   $status = explode("\n", $in);
   $ile = count($status);
   echo '<img src=" http://sebastianpietrzak.com/bimg/'.$status[$ile-2].'.jpg" alt="Numer gg : 3148881" ><img src=" http://sebastianpietrzak.com/bimg/nrgg.jpg" >';
} else {
   echo '<img src="error.jpg">';
}

?>


--------------------
Go to the top of the page
 
+Quote Post
exway
post 25.4.2006 - 08:34
Post #3


aktywność:
***

Grupa: +Bloger
Postów: 52

Nr: 464



Wywietlanie dziala ale czy dziala to ograniczenie czasowe to musze poczekac az trafie na zawieszony serwer gg, bardzo bym jeszcze prosil o komentarz do tego kodu, gdzie jest to ogranicznie czasowe i ile trwa ? Dzieki z gory wink.gif

Aha i co robi jesli nie zwroci wartosci 1,2,3?

Ten post edytował exway 25.4.2006 - 08:41
Go to the top of the page
 
+Quote Post
MalCom
post 25.4.2006 - 09:50
Post #4


aktywność:
****

Grupa: Redakcja
Postów: 165

Nr: 179



w tej lini jest ustawiony czas po ktorym zostaje przerwane łaczenie:
KOD
$fp = fsockopen("status.gadu-gadu.pl", 80, $errno, $errstr, 2);

wynosi ono 2s., można podać w ms np. 0.001 i sprawdzić jezyk3.gif

co do zwracanych wartości, nie wiem jakie moga być zwracane, dlatego napisz jakie one moga być.
Wydaje mi się, że 0, 1 , 2 , 3, dla każdego stanu określona cyfra jezyk3.gif

Możan wtedy trochę zabezpieczyć skrypt, że jak się nie połączy lub w pliku nie będzie cyfry 0-3 to wyświetli error wink.gif

Napisz co i jak jeszcze, wtedy się poprawi i udokumentuje kod smile.gif


--------------------
Go to the top of the page
 
+Quote Post
exway
post 25.4.2006 - 10:04
Post #5


aktywność:
***

Grupa: +Bloger
Postów: 52

Nr: 464



no teraz jest dobrze 1,2,3 a jak error to moze zwracac 4 smile.gif i wtedy utowrze jeszcze jedna ikone, dzieki

Sprawdzilem i wyswietla taie cos na stronie : Warning: fsockopen(): unable to connect to status.gadu-gadu.pl:80 in /home/ebastian/public_html/blog/wp-content/themes/default/sidebar.php on line 43 tak wiec prosze zeby zwracalo wartosc 4 jak sie nie moze polaczyc, czyli tak aby na wyjsciu w tym
KOD
img src=" http://sebastianpietrzak.com/bimg/'.$status[$ile-2].'.jpg


bylo http://sebastianpietrzak.com/bimg/4.jpg cool.gif

Ten post edytował exway 25.4.2006 - 10:12
Go to the top of the page
 
+Quote Post
MalCom
post 25.4.2006 - 10:43
Post #6


aktywność:
****

Grupa: Redakcja
Postów: 165

Nr: 179



KOD
<?php

$fp = @fsockopen("status.gadu-gadu.pl", 80, $errno, $errstr, 1); // otwarcie polaczenia z serwerem gg;
// timeiut = 1, jesli sie nie polaczy w tym czasie to anuluje dalsze laczenie;)
if ($fp) {    // jesli sie polaczono
  $out = "GET /users/status.asp?id=3148881&styl=2 HTTP/1.1\r\n";
  $out .= "Host: status.gadu-gadu.pl\r\n";
  $out .= "Connection: Close\r\n\r\n";

  fwrite($fp, $out);     // wyslanie zapytania HTTP;
  while (!feof($fp)) {   // pobranie odpowiedzi;
      $in .= fgets($fp, 128);
  }
  fclose($fp);

  $statusl = explode("\n", $in);   // dzielenie odpowiedzi na linie;
  $ile = count($statusl);          // ilosc lini (elementow w tablicy);
  $status = $statusl[$ile-2];      // status znajduje sie w ostatniej lini,
  // -2 bo tablica zacyna sie od 0 oraz ostatnia linia równiez zawierała \n
  // i dodatkowy 'pusty' element w tablicy sie pojawił;
}

// jesli status jest inny niż 1, 2 lub 3 to 4;
if ($status != 1 && $status != 2 && $status != 3) {
  $status = 4;
}

echo '<img src=" http://sebastianpietrzak.com/bimg/'.$status.'.jpg" alt="Numer gg : 3148881" ><img src=" http://sebastianpietrzak.com/bimg/nrgg.jpg" >';

?>

Mam nadzieję, że teraz jest wszystko jasne smile.gif


--------------------
Go to the top of the page
 
+Quote Post
exway
post 25.4.2006 - 11:07
Post #7


aktywność:
***

Grupa: +Bloger
Postów: 52

Nr: 464



WIELKIE DZIEKI, wszystko dziala tak jak nalezy cool.gif
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:

 



Wersja Lo-Fi Aktualny czas: 3 12 08 - 03:33
WebFan | Forum Komputerowe | Spotkania blogerów