Skocz do zawartości
Zaloguj się, aby obserwować  
N0Name

Ping Serwera Problem [ts3]

Polecane posty

Witajcie proszę was o pomoc, a więc tak chce zrobić ping serwera ts3 w php na stronę gdy już zrobiłem to jest problem bo pokazuje ping typu 47.8765ms czy da się to zrobić aby pokazywało bez tego co jest po kropce, Linijka odpowiadająca za ping wygląda tak.

 

echo "<font color='blue'><img src='images/ts3status/ping.png'> Ping: </font>".$dane["virtualserver_total_ping"]."ms<br />";

Próbowałem na wszelakie sposoby i nie działa tylko ta komenda, na serwerze pokazuje normalnie np ping 47ms.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

A mógłbyś mi podać jak to ma dokładnie wyglądać bo mi nie wychodzi.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Przecież masz przykłady na stronie podane, to czego nie rozumiesz?

 

Spróbuj zamienić

$dane["virtualserver_total_ping"]

Na

round($dane["virtualserver_total_ping"], 0)

Nie jestem tylko pewien czy round może przyjąć wartość z tablicy array, ale raczej problemu nie będzie. Powyższe użycie zaokrągli Ci wynik, jeśli skrypt miałby pokazać np. 46.6, to pokaże 47

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
$score = round($dane["virtualserver_total_ping"], 0);

Tak spróbuj. Daj to przed echo, a w echo wyświetl wartość zmiennej score.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
$score = round($dane["virtualserver_total_ping"], 0);

Tak spróbuj. Daj to przed echo, a w echo wyświetl wartość zmiennej score.

Działa ale pokazuje ping 1ms nie wiem czemu.

 

Jaki błąd zwraca? Pokaż linijkę którą podmieniłeś

Taka linijka wklejam z twoim kodem.

echo "<font color='blue'><img src='images/ts3status/connect.gif'> Ping: </font>".round($dane["virtualserver_total_ping"], 0)."ms<br />";

 

Możecie dać mi jakiś konkretny kod bo nie wiem jak to wkleić dokładnie. Nie jestem Pro.

Edytowano przez N0Name (zobacz historię edycji)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Ponaglasz, ale o co chodzi? Przecież dostałeś wskazówki. Skąd my mamy wiedzieć dlaczego pokazuje ping 1ms? Może tak skrypt zwraca?

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Działa ale pokazuje ping 1ms nie wiem czemu.

 

 

Taka linijka wklejam z twoim kodem.

 

Możecie dać mi jakiś konkretny kod bo nie wiem jak to wkleić dokładnie. Nie jestem Pro.

Spróbuj

$score = round($dane["virtualserver_total_ping"]);
Edytowano przez kcp (zobacz historię edycji)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Niestety nie działa, tzn użyłem takiego kodu i pokazuje ping serwera czyli localhost 1ms

echo "<font color='blue'><img src='images/ts3status/ping.png'> Ping:</font>".settype($dane["virtualserver_total_ping"],integer)."ms<br />";

A chce by pokazywało ping serwera tego co śsredni na serwerze czyli tak jak pisze ping 52.6554ms tyle że chce by pisało np 52 czy tam 53ms

Edytowano przez N0Name (zobacz historię edycji)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Hmm ewentualnie można zrobić to w ten sposób:

function skrot($txt, $dlugosc_tekstu)
{
 if(strlen($txt) <= $dlugosc_tekstu)
  return $txt;

 while($txt{$dlugosc_tekstu} != ' ' && strlen($txt) > $dlugosc_tekstu)
  ++ $dlugosc_tekstu;

 $str = substr($txt, 0, $dlugosc_tekstu);

 if(strlen($txt) > $dlugosc_tekstu){
  $str .= "…";
 }

 return $str;
}

 

chyba to ogarniesz jak tego użyć .

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Jeżeli zmienna

$dane["virtualserver_total_ping"]

zawiera dobry ping i zwraca go dobrze, to niemożliwością jest że kod podany np. przez @ZooMpl nie działa.

  • Upvote 1

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Jeżeli zmienna

$dane["virtualserver_total_ping"]

zawiera dobry ping i zwraca go dobrze, to niemożliwością jest że kod podany np. przez @ZooMpl nie działa.

 

Dokładnie, spróbuj najpierw

$dane["virtualserver_total_ping"] zapisać jako zmienną, potem ją użyć...

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Działa ale mówię ci że zwraca ping tak jak by go localhost pytał, ale chce wyświetlić jaki jest ping średni serwera, dziwne jest to że obecnie wyświetla np 54.2355ms a jak dam to co ZooMpl napisał to wyświetla ping 1ms

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Może spróbuj zapisać zmienną i po prostu aktualizować ją raz na jakiś czas... Bo podejrzewam że round się gubi przy aktualizacjach...

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Nie próbowałem bo nie znalazłem, a twój wyżej nie działa.

 

Prosty skrypcik naklepany na szybko:

<?php
   $adres = getenv(REMOTE_ADDR);
   $ping = exec("/bin/ping -c 5 $adres");
   preg_match("/rtt min\/avg\/max\/mdev = (.*)\/(.*)\/(.*)\/(.*) ms/", $ping, $matches);
  echo $matches[2];
?>

zobacz czy działa bo nawet nie testowałem, potem użyj round.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Bądź aktywny! Zaloguj się lub utwórz konto

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto

Zarejestruj nowe konto, to proste!

Zarejestruj nowe konto

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się

Zaloguj się, aby obserwować  

×