Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Odczyt danych z pliku tekstowego
juzekmj
post
Post #1





Grupa: Zarejestrowani
Postów: 18
Pomógł: 0
Dołączył: 21.06.2010

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


Cześć, mam taki kod który odczytuje dane z loga Digitempa (program do pomiaru temperatury). Niestety nie ja to napisałem i z moją znajomością PHP nie rozumiem do końca jak działa sad.gif

CODE
<?

$plik = file("/home/mateusz/digitemp.log");
$ilosc = count($plik);
$poczatek = $ilosc - 2;

for ($i = $poczatek; $i < $ilosc; $i++)
{
$temp = $plik[ $i ];
}

$hmm = explode(" ","$temp");

/* parametry pobierania danych z pliku */
$numer_baza = $hmm[4];
$temp_baza = $hmm[6]*1;
/* 4=numer_odczytu 6=temperatura */


$link = mysql_connect("localhost", root, 123)
or die("brak polaczenia");


$d = date('Y-m-d');
$t = date('H:i:00');

mysql_select_db("temperatura");
{
$zapytanie = "INSERT INTO `temp` (`id`, `date`, `time`, `temperatura`, `numer`) VALUES ('', '$d', '$t', '$temp_baza', '$numer_baza')";
$idzapytania = mysql_query($zapytanie);
}

?>


gdy jest podpięty jeden termometr, to kod bez problemu wyłapuje temperaturę i numer czujnika, jednak gdy podepnę ich więcej to zaczynają sie problemy. Analizowana jest tylko ostatnia linijka loga który wygląda tak:

Mar 03 17:59:25 Sensor 0 C: -0.31 F: 31.44
Mar 03 17:59:26 Sensor 1 C: 20.62 F: 69.12
Mar 03 17:59:27 Sensor 2 C: 24.50 F: 76.10
Mar 03 17:59:29 Sensor 3 C: 26.56 F: 79.81

Co mógłbym zrobić żeby dane zostały pobrane ze wszystkich (lub określonej liczby) linijek i dodane do mySQLa jako osobne rekordy?

Z góry dzięki, Mateusz smile.gif
Go to the top of the page
+Quote Post
CuteOne
post
Post #2





Grupa: Zarejestrowani
Postów: 2 958
Pomógł: 574
Dołączył: 23.09.2008
Skąd: wiesz, że tu jestem?

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


Nie wiem czy będzie działać (powinno)

  1. <?php
  2.  
  3. $link = mysql_connect("localhost", root, 123) or die("brak polaczenia");
  4. mysql_select_db("temperatura", $link);
  5.  
  6. $sensors = array(0,1,2,3,4,5,6,7);
  7. $d = date('Y-m-d');
  8. $t = date('H:i:00');
  9.  
  10.  
  11. $plik = file("/home/mateusz/digitemp.log");
  12. $ilosc = count($plik);
  13.  
  14. for($i = 0; $i < $ilosc; $i++) {
  15.  
  16. $exp = explode(' ', $plik[$i]);
  17.  
  18. foreach($sensors as $list) {
  19.  
  20. if($exp[4] == $list && strtolower($exp[3]) == 'sensor') {
  21.  
  22. $num = $exp[4];
  23. $temp = $exp[6]*1;
  24.  
  25. mysql_query("INSERT INTO `temp` (`id`, `date`, `time`, `temperatura`, `numer`) VALUES ('', '$d', '$t', '$temp', '$num')");
  26. }
  27. }
  28. }
Go to the top of the page
+Quote Post
juzekmj
post
Post #3





Grupa: Zarejestrowani
Postów: 18
Pomógł: 0
Dołączył: 21.06.2010

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


wow, działa! wielkie dzięki smile.gif
Go to the top of the page
+Quote Post
Fifi209
post
Post #4





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

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


Zabijcie serwer...

fopen
fgets
feof


--------------------
Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP
Go to the top of the page
+Quote Post
juzekmj
post
Post #5





Grupa: Zarejestrowani
Postów: 18
Pomógł: 0
Dołączył: 21.06.2010

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


fifi209 - baza będzie aktualizowana co godzinę, a dopiero z bazy dane będą pobierane osobno dla każdego odwiedzającego. Nie będzie więc najmniejszej różnicy, przynajmniej w tym co ja chce zrobić smile.gif
Go to the top of the page
+Quote Post
Fifi209
post
Post #6





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

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


Po pewnym czasie wrócisz z problemem, że Twój skrypt zżera za dużo ramu ;]


--------------------
Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP
Go to the top of the page
+Quote Post
juzekmj
post
Post #7





Grupa: Zarejestrowani
Postów: 18
Pomógł: 0
Dołączył: 21.06.2010

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


Ile mniej więcej taki skrypt zużywa ramu?! myślałem że można to liczyć w kilobajtach i z dzisiejszymi serwerami dopiero przy dziesiątkach tysięcy odwiedzin zaczynają sie problemy.. smile.gif nie mówię o najtańszych hostingach oczywiście.
Go to the top of the page
+Quote Post
Fifi209
post
Post #8





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

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


Zależnie od rozmiaru pliku, jednak z czasem możesz przekroczyć limit ustalony w php.ini


--------------------
Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 19.08.2025 - 10:42