Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript][PHP]Skrypt php na wiele portów
Forum PHP.pl > Forum > Przedszkole
KyrieAnn
Witajcie.
Prawdę mówiąc nie mam nikogo znajomego, który ogarnął moje pytanie.
I kolejna prawda, chcę się w jawny sposób posłużyć kimś, kto mi pomoże zakochany.gif

A więc, mam skrypt php, ot taki sobie:

  1. <?php
  2. $funzocker = "xxx.xxx.xxx.xxx";
  3. $ip = gethostbyname($funzocker);
  4. $portlist=array(11002);
  5. $i=0;
  6. foreach ($portlist as $port){
  7. $online = @fsockopen($ip, $port, $errno, $errstr, 1);
  8. if (!$online)
  9. {
  10. echo "<font color='#CC0000'>Offline</font>";
  11. }
  12. else
  13. {
  14. echo "<font color='#457b1a'>Online</font>";
  15. }
  16. @fclose($online);
  17. $i++;
  18. }
  19. ?>


I teraz moje pytanie.

Jak widać jest tu jeden port a ja chciałabym aby było kilka.
I jak zawsze jest jedno ale.

Czy da się zrobić tak, aby było przy założeniu, że tu będzie 5 portów:

Jeśli wszystkie odpowiedzą no to będzie Online (czyli tak, jak jest)
Jak nie odpowie żaden, to będzie Offline (czyli tak, jak jest)
Ale któryś odpowie a któryś nie, to czy można tam wstawić np Busy?

Z góry kocham osobę, która pomoże smile.gif
mortus
No ale to przecież nic trudnego:
  1. <?php
  2. $funzocker = "xxx.xxx.xxx.xxx";
  3. $ip = gethostbyname($funzocker);
  4. $portlist = array(11002, 11010, 11011, 11003, 11001);
  5. foreach($portlist as $port) {
  6. $link = @fsockopen($ip, $port, $errno, $errstr, 1);
  7. if(!$link) {
  8. $busy = (isset($busy) && $busy) || (isset($online) && $online) ? true : false;
  9. $online = false;
  10. } else {
  11. $busy = (isset($busy) && $busy) || (isset($online) && !$online) ? true : false;
  12. $online = true;
  13. }
  14. @fclose($link);
  15. }
  16. if(isset($busy) && $busy) {
  17. echo "<font color='#CC0000'>Busy</font>";
  18. } else {
  19. if($online) {
  20. echo "<font color='#457b1a'>Online</font>";
  21. } else {
  22. echo "<font color='#CC0000'>Offline</font>";
  23. }
  24. }
  25. ?>


EDIT1: Coś poknociłem. Sprawdzcie proszę, bo nie mam jakoś głowy dzisiaj.
EDIT2: Tak jest lepiej.
prowseed
  1. <?php
  2. $funzocker = "xxx.xxx.xxx.xxx";
  3. $ip = gethostbyname($funzocker);
  4. $portlist=array(11002,80,23,514,26000);
  5. $i=0;
  6. foreach ($portlist as $port){
  7. $online = @fsockopen($ip, $port, $errno, $errstr, 1);
  8. if (!$online) $i++;
  9. @fclose($online);
  10. }
  11. if($i==5) echo "Offline";
  12. if(($i<5) and ($i!=0)) echo "Busy";
  13. if($i==0) echo "Online";
  14. ?>


//EDIT
ups, spoznialski jestem snitch.gif
//EDIT2
tam byl blad maly, poprawilem : )
zegarek84
jakby czasami Cię interesowała asynchroniczna komunikacja w PHP na socketach:
http://wezfurlong.org/blog/2005/may/guru-multiplexing/ - tytułem wstępu, dalej już będziesz wiedziała czym się kierować lub czego szukać...
KyrieAnn
Cytat(zegarek84 @ 29.01.2012, 13:56:46 ) *
jakby czasami Cię interesowała asynchroniczna komunikacja w PHP na socketach:
http://wezfurlong.org/blog/2005/may/guru-multiplexing/ - tytułem wstępu, dalej już będziesz wiedziała czym się kierować lub czego szukać...


Ale ja tylko chciałam skrypt php.gif

Dziękuję tym, którzy się postarali.
Pozdrawiam bardzo serdecznie.
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.