Freesco, NND, CDN, EOS

http://www.freesco.pl
Dzisiaj jest czwartek, 26 czerwca 2025, 20:49

Strefa czasowa UTC+2godz.




Nowy temat Odpowiedz w temacie  [ Posty: 8 ] 
Autor Wiadomość
Post: środa, 19 kwietnia 2006, 16:19 
Offline
Użytkownik

Rejestracja: piątek, 10 marca 2006, 21:26
Posty: 245
Lokalizacja: Knurów
Witam

Mam taki oto skrypt:
: [/] [] ()
function cmd($komenda) {
    $dane = popen($komenda,r);
    while (!feof($dane)) {
        $linie.=fgets($dane);
    }
    pclose($dane);
    return $linie;
}
$dane_tab = explode(" ",cmd('df | grep hda1'));
echo $dane_tab[1];

Funkcja zwraca $linie prawidlowo:
/dev/hda1 792420 418748 333420 56% /

Nietsety cos sie "traci" przy explode...
echo $dane_tab[0] daje tak jak powinno byc /dev/hda1
ale juz np echo $dane_tab[1], czy jakiekolwiek inne
($dane_tab[3],$dane_tab[4], itd) niestety nie wysiwetlaja nic...

Gdzie sie podziala reszta znakow?

Z gory dzieki

_________________
Proszę samodzielnie usuwać nieistniejące linki w swoich sygnaturkach!!! /Administrator/


Na górę
 Wyświetl profil  
 
 Tytuł:
Post: środa, 19 kwietnia 2006, 16:50 
Offline

Rejestracja: czwartek, 6 kwietnia 2006, 23:08
Posty: 30
Wszystko jest OK,

zobacz jaki ciąg zwraca instrukcja
: [/] [] ()
df | grep hda1


tam jest dużo spacji i wynikiem explode jet tablica z 30 wartościami.

: [/] [] ()
foreach($dane_tab as $wynik){
echo $wynik."<br>";
}


zobaczysz wszystko :)


Na górę
 Wyświetl profil  
 
 Tytuł:
Post: środa, 19 kwietnia 2006, 16:59 
Offline
Użytkownik

Rejestracja: piątek, 10 marca 2006, 21:26
Posty: 245
Lokalizacja: Knurów
Dzieki - mam gnoja :)
Faktycznie, bylo tam mnostwo spacji, o ktorych nie pomyslalem
i interesujace mnie wratosci byly porozrzucane po tablicy :)

Oto lekarstwo jakby ktos potrzebowal na przyszlosc:
: [/] [] ()
function cmd($komenda) {
    $dane = popen($komenda,r);
    while (!feof($dane)) {
        $linie.=fgets($dane);
    }
    pclose($dane);
    $czysty = preg_replace('/\s+/',' ',$linie);
    return $czysty;
}


Teraz jakiekolwiek wywolanie funkcji owocuje wynikiem
pozabawionym dziesiatek spacji - wszytskie powtarzajace sie
spacje w stringu wynikowym sa zastepowane jedna spacja.

Polecam sie pobawic czasem php, bo mozna np fajne statsy
powyciagac :) Oto przyklad stosowania powyzszej funkcji:

http://groch.dyndns.org/stats.php
(prawie na samym dole)

Pomyslow jest masa - ruszcie szare komorki :)

Pozdrawiam

_________________
Proszę samodzielnie usuwać nieistniejące linki w swoich sygnaturkach!!! /Administrator/


Na górę
 Wyświetl profil  
 
 Tytuł:
Post: środa, 19 kwietnia 2006, 20:49 
Offline

Rejestracja: czwartek, 6 kwietnia 2006, 23:08
Posty: 30
Dobra,

a teraz dopisz na początku skryptu
: [/] [] ()
error_reporting(E_ALL);


zobaczysz, że wywali błąd ;)

najpierw musisz zainicjować zmienną $linie:
: [/] [] ()
$linie='';


Jeżeli kiedyś zmienisz sobie sposób raportowania błędów w PHP
to możesz się zdziwić, że skrypty przestały działać


Na górę
 Wyświetl profil  
 
 Tytuł:
Post: środa, 19 kwietnia 2006, 22:45 
Podrzuce kilka gotowców, może się przydadzą.


Usuwanie zbędnych spacji:
: [/] [] ()
while (stristr($var, '  '))
$var = str_replace('  ', ' ', $var);



Sprawdzanie zawartości tablicy:
: [/] [] ()
echo '<pre>';
print_r($array);
echo '</pre>';


Na górę
  
 
 Tytuł:
Post: czwartek, 20 kwietnia 2006, 19:32 
Offline
Użytkownik

Rejestracja: niedziela, 23 stycznia 2005, 12:00
Posty: 480
groch czy to aktualne wykorzystanie lacza u ciebie dziala na statmat czy inne rozwiazanie ? (jakies skrypty, paczki itp )


Na górę
 Wyświetl profil  
 
 Tytuł:
Post: czwartek, 20 kwietnia 2006, 21:48 
Offline
Użytkownik

Rejestracja: piątek, 10 marca 2006, 21:26
Posty: 245
Lokalizacja: Knurów
Ten skrypt dane bierze z Niceshapera :) Uruchamia polecenie stats
przez sudo i wyswietla wynik w tabelce....
: [/] [] ()
<?
$max_u=5; // pogrubianie powyzej tej wartosci wysylania
$max_d=50; // pogrubianie powyzej tej wartosci pobierania

$dane='';
$pp=popen( 'sudo niceshaper stats','r' );
while ( !feof ( $pp ) ) {
    $dane.=fgets($pp);
}
pclose($pp);

$fp = fopen("nicestats/nsstats.txt",'w');
fwrite($fp, $dane);
fclose($fp);

$chunksize = 1*(1024*1024);
$handle = fopen("nicestats/nsstats.txt", 'rb');
if ($handle === false) {
    return false;
}

echo '<table align="center" width="60%" border="2" cellspacing="2" cellpadding="2" style="border-collapse:collapse">
      <tr class="t01" align="center" style="padding-bottom: 10px;"><td>&nbsp;</td>
      <td><strong>Komputer</strong></td>
      <td align="center"><strong>Download</strong></td>
      <td align="center"><strong>Upload</strong></td></tr>';
while (!feof($handle)) {
    $buffer = fread($handle, $chunksize);
    $buffer3=explode("\n", $buffer);
$zlicz=1;
$down=0;
$up=0;
    for ($i=2;$i<count($buffer3);$i++) {
        $buffer3[$i] = preg_replace('/\s+/', ' ', $buffer3[$i]);
        $buffer2=explode(" ", $buffer3[$i]);
        $down_k=substr($buffer2[4],0,-4);
        $up_k=substr($buffer2[9],0,-4);
        if ($buffer2[0] !='') {
            echo '<tr class="t01"><td align="right">'.($zlicz).'.</td>
            <td style="padding-left: 10px;">'.$buffer2[0].'</td>';
            if ($down_k >= $max_d) {
            echo '<td align="right" style="padding-right: 30px;"><b>'.$down_k.'</b> kB/s</td>';
            }
            else {
            echo '<td align="right" style="padding-right: 30px;">'.$down_k.' kB/s</td>';
            }
            if ($up_k >= $max_u) {
            echo '<td align="right" style="padding-right:30px;"><b>'.$up_k.'</b> kB/s</td>';
            }
            else {
            echo '<td align="right" style="padding-right:30px;">'.$up_k.' kB/s</td>';
            }
            echo '</tr>';
            $down=$down+substr($buffer2[4],0,-4);
            $up=$up+substr($buffer2[9],0,-4);
            $zlicz=$zlicz+1;
        }
    }
echo '<tr class="t01"><td>&nbsp;</td>
    <td align="center"><strong>Razem</strong></td>
    <td align="right" style="padding-right: 30px;"><strong>'.$down;

if (substr($down,-2,1)!='.') echo '.0';

echo '</strong> kB/s</td><td align="right" style="padding-right:
30px;"><strong>'.$up;

if (substr($up,-2,1)!='.') echo '.0';

echo '</strong> kB/s</td></tr></table>';
}
fclose($handle);

?>


Szczegoly znajdziesz tutaj:
http://forum.freesco.pl/viewtopic.php?t=6506&start=60

_________________
Proszę samodzielnie usuwać nieistniejące linki w swoich sygnaturkach!!! /Administrator/


Na górę
 Wyświetl profil  
 
 Tytuł:
Post: czwartek, 20 kwietnia 2006, 23:02 
Offline
Użytkownik

Rejestracja: niedziela, 23 stycznia 2005, 12:00
Posty: 480
eh troche mi to nie pasuje bo nice z imq nie pokazuje uploadu calego...


Na górę
 Wyświetl profil  
 
Wyświetl posty nie starsze niż:  Sortuj wg  
Nowy temat Odpowiedz w temacie  [ Posty: 8 ] 

Strefa czasowa UTC+2godz.


Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 12 gości


Nie możesz tworzyć nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Przejdź do:  
Technologię dostarcza phpBB® Forum Software © phpBB Group
Hosting: Compus-Net
RobertKonik.pl