Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Wyrażenia Regularne problem
buker
post
Post #1





Grupa: Zarejestrowani
Postów: 27
Pomógł: 0
Dołączył: 8.01.2011
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Witam mam problem z wyrażeniami regularnymi.
  1. /dev/sda1 93868 21959 67141 25% /
  2. /dev/sda6 197195 116541 70637 63% /media/Dane
  3. ...


Mam taki tekst z tym że tych wierszy może być dużo więcej.

Musze się dobrać do pierwszej i 2 wartości w każdym wierszu i je zsumować(pierwsza wartość pierwszy wiersz + pierwsza wartość 2 wiersz .... i tak dalej.)

Nie zbyt rozumiem wyrażenia regularne i prosił bym o pomoc.
/dev/(zamiast sda1 może być wiele rożnych rzeczy) tak samo na końcu /medi/Dande nie koniecznie musi być takie, zawsze będzie się zaczynać od "/")
Myślę nad czymś takim ale trochę się pogubiłem ;/
  1. $disktotal = preg_replace('^(/dev/)([A-Z0-9][A-Z)-9_-]
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
buker
post
Post #2





Grupa: Zarejestrowani
Postów: 27
Pomógł: 0
Dołączył: 8.01.2011
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


  1. $text = trim(shell_exec("df -m | sed -n '/^[:cntrl:/]dev/p'"));
  2. //Dzieli tekst co linike;
  3. $text = preg_split('/\n/', $text);
  4. $pattern = '/^(\/{1}.*)?\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\%{1}\s+(\/{1}.*)?$/';
  5.  
  6.  
  7. $matches = array();
  8. //Sprawdź każdą linikę
  9. foreach ($text as $value)
  10. {
  11. preg_match($pattern, $value, $match);
  12. $matches[] = $match;
  13. }
  14. //echo '<pre>';
  15. //print_r($matches);
  16. //echo '</pre>';
  17. $disktotal = 0;
  18. $diskusage = 0;
  19. $diskfree = 0;
  20. $diskpercent = 0;
  21. $count = count($matches);
  22. for($i = 0; $i<$count;$i++)
  23. {
  24. $disktotal += $matches[$i][2];
  25. $diskusage += $matches[$i][3];
  26. $diskfree += $matches[$i][4];
  27. $diskpercent += $matches[$i][5];
  28. }
  29. echo "\n".$disktotal."\n";
  30. echo $diskusage."\n";
  31. echo $diskfree."\n";
  32. echo $diskpercent."\n";


Dziękuję wszystkim za pomoc.
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 12.10.2025 - 06:44