Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Pliki txt - sprawdzenie ip i określenie numeru linii
Malinaa
post 11.09.2010, 09:45:04
Post #1





Grupa: Zarejestrowani
Postów: 573
Pomógł: 6
Dołączył: 21.07.2008

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


Witam,

w pliku txt mamy:

208.80.193.42||1210098499
212.76.37.178||1210098499
127.0.0.1||1284194220
211.76.37.178||1210098499
210.76.37.178||1210098499

i mam kod:

  1. // Sprawdzenie, czy ip jest juz w pliku i okreslenie numeru linii
  2. $uchwyt = fopen($plik_unikalne, 'r');
  3. $tablica = explode("\r\n", @fread($uchwyt, filesize($plik_unikalne)));
  4. $ile_unikalne = count($tablica);
  5.  
  6. for ($x=0; $x<$ile_unikalne; $x++) {
  7. $wartosc = explode("||",$tablica[$x]);
  8.  
  9. if ($wartosc[0] == $ip) {
  10. $ip_index_linii = $x; // szukane ip
  11. }
  12. }


Pytanie: Można prościej sprawdzić, czy w pliku jest już dane IP i określić numer linii?


--------------------
I welcome you on the Internet >>> Design by Malina
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
erix
post 11.09.2010, 09:46:53
Post #2





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Widzę, że kochasz marnować pamięć. tongue.gif

fgets + while + licznik.


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
Malinaa
post 11.09.2010, 10:43:30
Post #3





Grupa: Zarejestrowani
Postów: 573
Pomógł: 6
Dołączył: 21.07.2008

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


Możliwe tongue.gif , ale chciałbym się poprawić.

  1. $uchwyt = fopen($plik_unikalne, "r");
  2. if ($uchwyt) {
  3. while (!feof($uchwyt)) {
  4. $buffer = fgets($uchwyt, 4096);
  5. }
  6. fclose($uchwyt);
  7. }


Nie mam pojęcia jak w ten sposób sprawdzić ip i pobrać numer linii, w której jest ip?
Powiedz proszę, fgets + while + licznik samo nie zadziała smile.gif

I jest jedno pytanie, nad którym się już wcześciej zastanawiałem fgets() liczba 4096 - co dokładnie oznacza.
Plik może być bardzo duży i może trzeba będzie odczytać cały zanim znajdzie ip, 4096 czy odczyta cały plik?


--------------------
I welcome you on the Internet >>> Design by Malina
Go to the top of the page
+Quote Post
erix
post 11.09.2010, 11:06:17
Post #4





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Cytat
Powiedz proszę, fgets + while + licznik samo nie zadziała

W środku explode + zwykły if + zwiększanie wartości licznika i ew. break.

Cytat
I jest jedno pytanie, nad którym się już wcześciej zastanawiałem fgets() liczba 4096 - co dokładnie oznacza.
Plik może być bardzo duży i może trzeba będzie odczytać cały zanim znajdzie ip, 4096 czy odczyta cały plik?

A otworzyłeś sobie chociaż fgets? Bo śmiem twierdzić, że nie.


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
Malinaa
post 11.09.2010, 11:31:34
Post #5





Grupa: Zarejestrowani
Postów: 573
Pomógł: 6
Dołączył: 21.07.2008

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


Co w środku? Coś wymyśle.

fgets($uchwyt, 4096); jak dobrze rozumię odczyta cały plik, a liczba odnosi się tylko do długości poszczególnych linii (albo przeczytam jeszcze raz).

Thanks


--------------------
I welcome you on the Internet >>> Design by Malina
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 Wersja Lo-Fi Aktualny czas: 14.08.2025 - 10:47