Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: fragment zmiennej
Forum PHP.pl > Forum > PHP
musiek86
Witam mam taki oto skrypt
  1. <?PHP
  2. $uptime=shell_exec("c:/uptime.exe");
  3. echo $uptime;
  4. ?>


Jego wynikiem jest "21:20:19 up 06:36:38, 5 users, boot 2011-08-20 14:43:40, load: 0"

Jak widać zmienna $uptime daje dość sporo informacji, natomiast mnie interesuje wyłacznie to co jest po "up" a przed przecinkiem pierwszym czyli 06:36:38.
Czy jest możliwość by z tej zmiennej wyciągnąć wyłacznie to? Np poprzez przekazanie konkretnego odcinka zmiennej? Jak widac długość tej zmiennej to jak dobrze licze 64 znaki, mozna z niej wyciagnac do innej zmiennej badz wyświetlić wyłacznie znaki od 13 do 20? Jak zapewne zauważyliście sktypt ten wyswietla czas od momentu startu komputera, potrzebuje taki skrypt który pokazałby mi uptime serwera windowsowego na którym jest apache 1.3 zainstalowany, co prawda wpisujac http://localhost/server-status mam uptime serwera ale mam także mase innych niepotrzebnych mi rzeczy, a odpowiedniego skryptu znaleźć nie moge bo albo na linuxa albo wymaha php 5.2 lub wyższy.
Fifi209
substr i sobie wytnij?
uirapuru
wyrażenia regularne dobre na wszystko smile.gif
Kod
$string = '21:20:19 up 06:36:38, 5 users, boot 2011-08-20 14:43:40, load: 0';
$regex  = '/up (\d\d:\d\d:\d\d),/';

preg_match($regex,$string,$wynik);

var_dump($wynik[1]);


u mnie zwraca

Kod
string '06:36:38' (length=8)
musiek86
No oki ale to wyrazenie bedzie sie zmieniało w zaleznosci od czasu, każde odświeżenie strony bedzie dawało inny wynik wiec nie moge zrobic czegos takiego
  1. $string = '21:20:19 up 06:36:38, 5 users, boot 2011-08-20 14:43:40, load: 0';


Rozumiem ze jest to tak:
  1. $rest = substr("abcdef", 2, -1); // returns "cde"


A czy moge to sklepac w sposób nastepujący:

  1. <?PHP
  2. $uptime=shell_exec("c:/uptime.exe");
  3. $rest = substr("$uptime", 12, 21);
  4. echo $rest;
  5. ?>
uirapuru
Eh, dałem Ci przykład który musisz sobie dostosować, podpowiem Ci: zamiast $string daj $uptime wink.gif
musiek86
Poradziłem sobie, wyglada to mniej wiecej tak:
  1. <html>
  2. <META http-equiv="Refresh" content="1">
  3. </html>
  4. <?PHP
  5. $uptime=shell_exec("c:/uptime.exe");
  6. $wynik = substr("$uptime", 25, 74);
  7. echo $wynik;
  8. ?>

W każdym razie spełnia to moje wymagania, dziekuje za pomoc wink.gif
uirapuru
Jeśli chcesz skrócić, może być tez:

Kod
<?= substr(shell_exec("c:/uptime.exe"), 25, 74); ?>


smile.gif

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.