N0Name 48 Zgłoś post Napisano Czerwiec 3, 2012 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
Łukasz Ostrowski 593 Zgłoś post Napisano Czerwiec 3, 2012 Użyj np. round Udostępnij ten post Link to postu Udostępnij na innych stronach
HaPe 242 Zgłoś post Napisano Czerwiec 3, 2012 Przepuść zmienną z wartością ping przez funkcję round w PHP i zapisz jej wynik z powrotem to tej samej zmiennej. http://it.php.net/manual/pl/function.round.php Udostępnij ten post Link to postu Udostępnij na innych stronach
N0Name 48 Zgłoś post Napisano Czerwiec 3, 2012 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
Łukasz Ostrowski 593 Zgłoś post Napisano Czerwiec 3, 2012 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
N0Name 48 Zgłoś post Napisano Czerwiec 3, 2012 @ZooMpl Nie działa to co podałeś. Udostępnij ten post Link to postu Udostępnij na innych stronach
Łukasz Ostrowski 593 Zgłoś post Napisano Czerwiec 3, 2012 Jaki błąd zwraca? Pokaż linijkę którą podmieniłeś Udostępnij ten post Link to postu Udostępnij na innych stronach
HaPe 242 Zgłoś post Napisano Czerwiec 3, 2012 $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
N0Name 48 Zgłoś post Napisano Czerwiec 3, 2012 (edytowany) $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 Czerwiec 3, 2012 przez N0Name (zobacz historię edycji) Udostępnij ten post Link to postu Udostępnij na innych stronach
N0Name 48 Zgłoś post Napisano Czerwiec 4, 2012 Ponaglam. Udostępnij ten post Link to postu Udostępnij na innych stronach
Tajgeer 19 Zgłoś post Napisano Czerwiec 4, 2012 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
kcp 41 Zgłoś post Napisano Czerwiec 5, 2012 (edytowany) 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 Czerwiec 5, 2012 przez kcp (zobacz historię edycji) Udostępnij ten post Link to postu Udostępnij na innych stronach
N0Name 48 Zgłoś post Napisano Czerwiec 6, 2012 (edytowany) 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 Czerwiec 6, 2012 przez N0Name (zobacz historię edycji) Udostępnij ten post Link to postu Udostępnij na innych stronach
kcp 41 Zgłoś post Napisano Czerwiec 6, 2012 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
Pitu 160 Zgłoś post Napisano Czerwiec 6, 2012 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. 1 Udostępnij ten post Link to postu Udostępnij na innych stronach
kcp 41 Zgłoś post Napisano Czerwiec 6, 2012 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
N0Name 48 Zgłoś post Napisano Czerwiec 6, 2012 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
SanKen 63 Zgłoś post Napisano Czerwiec 6, 2012 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
kcp 41 Zgłoś post Napisano Czerwiec 6, 2012 A próbowałeś użyć jakiegoś innego skryptu do pingowania? Udostępnij ten post Link to postu Udostępnij na innych stronach
N0Name 48 Zgłoś post Napisano Czerwiec 7, 2012 Nie próbowałem bo nie znalazłem, a twój wyżej nie działa. Udostępnij ten post Link to postu Udostępnij na innych stronach
kcp 41 Zgłoś post Napisano Czerwiec 7, 2012 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