Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Wyciągnięcie z pliku kazdej linijki osobno
Forum PHP.pl > Forum > PHP
modern
tak wygląda skrypt zapisujący w pliku online.txt:
  1. <?php
  2. function online_meter($uid, $livetime = 50)
  3. {
  4. $filename = 'online.txt';
  5.  
  6. $keep = array();
  7. $now = time();
  8. $max_live = $now - $livetime;
  9. $add_guest = true;
  10.  
  11. if ($table = @file($filename))
  12. {
  13. for ($i = 0, $j = count($table); $i < $j; $i++)
  14. {
  15. list($user_id, $user_time) = explode(';', $table[$i]);
  16. if ($user_time > $max_live)
  17. {
  18. $keep[] = $table[$i];
  19. if ($uid == $user_id)
  20. {
  21. $add_guest = false;
  22. }
  23. }
  24. }
  25. if (count($keep) != count($table))
  26. {
  27. for ($i = 0, $j = count($keep); $i < $j; $i++)
  28. {
  29. $buff .= $keep[$i];
  30. }
  31. $om = fopen($filename, 'w');
  32. fputs($om, $buff);
  33. fclose($om);
  34. }
  35. }
  36.  
  37. if ($add_guest)
  38. {
  39. $om = fopen($filename, 'a+');
  40. fputs($om, $uid.';'.$now."n");
  41. fclose($om);
  42. return count($keep)+1;
  43. }
  44.  
  45. return count($keep);
  46. }
  47.  
  48. $users_online = online_meter($_SERVER['REMOTE_ADDR']);
  49.  
  50. ?>

a tak wygląda plik online.txt:
Kod
62.121.65.226;1164211524
62.121.99.110;1164211572


Mam pytanko, jak wyciągnąc z pliku online.txt każde IP oddzielne i sprawdzić z bazą danych sql czy istnieje w niej taki adres? wszystko to w celu identyfikacji uzytkownika zeby zamiast nazywac go gosciem uzyc jego nazwy uzytkowej smile.gif Wyszukac w bazie potrafie, ale nie mam pojęcia jak wyciągnąc kazde IP z osobna z tego pliku.
Mam nadzieje ze zrozumiale napisałem
dziobak
zastosuj preg_match_all()

Tu masz opis tej komendy - dokumentacja php

wpisz tez w google jak przy pomocy preg_match rozpoznac adres ip. powinno byc takie cos
modern
szkoda ze nie ma po polsku sad.gif
dziobak
  1. <?
  2. $file = file_get_contents('online.txt');
  3.  
  4. //tego nie jestem powiem
  5. $pattern = "/((25[1-5]|2[1-4]d|[01]d{2}|(?<=[^d]|^)d{1,2}).){3} (25[1-5]|2[1-4]d|[01]d{2}|d{1,2})(?=[^d]|$)/";
  6.  
  7. preg_match_all($pattern,$file,$IP,PREG_PATTERN_ORDER);
  8.  
  9. print_r($IP);
  10.  
  11. ?>


czy o to chodzi??
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.