Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]fgets konkretna linijka tekstu
tenior
post 9.02.2009, 15:29:29
Post #1





Grupa: Zarejestrowani
Postów: 58
Pomógł: 2
Dołączył: 16.11.2008

Ostrzeżenie: (10%)
X----


Witam,
mam problem, chcę zaimportować na stronę konkretną linię tekstu z pliku cfg.ini.
W necie znalazłem kod, trochę go przerobiłem, ale on zwraca mi cały plik.
  1. <?php
  2. $uchwyt = @fopen ("/home/tenior/www/test/plik.txt", "r");
  3. if ($uchwyt) {
  4. while (!feof($uchwyt)) {
  5.    $buffer = fgets($uchwyt, 4096);
  6.    echo $buffer;
  7.    }
  8. fclose ($uchwyt);
  9. }
  10. ?>


Może ktoś pomóc?
Go to the top of the page
+Quote Post
isso
post 9.02.2009, 15:35:45
Post #2





Grupa: Zarejestrowani
Postów: 296
Pomógł: 32
Dołączył: 3.01.2005

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


http://www.hscripts.com/tutorials/php/file...ading-lines.php

czytanie linia po lini - musisz wiedzieć, gdzie jest to, co Cię interesuje smile.gif i wtedy np. dokladnie na tej lini ma się zatrzymać lub też preg_match smile.gif


--------------------
Go to the top of the page
+Quote Post
tenior
post 9.02.2009, 17:35:38
Post #3





Grupa: Zarejestrowani
Postów: 58
Pomógł: 2
Dołączył: 16.11.2008

Ostrzeżenie: (10%)
X----


no dobrze, ale gdzie się dodaje jaką linie ma wczytywać?
Go to the top of the page
+Quote Post
isso
post 9.02.2009, 17:49:16
Post #4





Grupa: Zarejestrowani
Postów: 296
Pomógł: 32
Dołączył: 3.01.2005

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


nie mozna chyba zrobic czegos na zasadzie: weź mi wczytaj linię 210 ;] musisz czytać plik po koleji i po prostu np. wyrazeniami regularnymi odneleźć to czego szukasz... lub też np. mozesz zrobić zmienną zliczającą ilość lini i np. jezeli ona bedzie równa ileś tam to wypisać tą linię i przerwać działanie programu.


--------------------
Go to the top of the page
+Quote Post
phpion
post 9.02.2009, 17:54:36
Post #5





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Nie sprawdzałem ale powinno zadziałać:
  1. <?php
  2. function wczytaj_linie($nazwa_pliku, $numer_linii) {
  3.    $licznik = 1;
  4.    
  5.    $plik = fopen($nazwa_pliku, 'r');
  6.    
  7.    while (!feof($plik)) {
  8.        $linia = chop(fgets($plik, 1024));
  9.        
  10.        if ($licznik == $numer_linii) {
  11.            fclose($plik);
  12.        
  13.            return $linia;
  14.        }
  15.        
  16.        $licznik++;
  17.    }
  18.    
  19.    fclose($plik);
  20. }
  21.  
  22. echo wczytaj_linie('plik.txt', 10);
  23. ?>

Wywołanie wczytaj_linie('plik.txt', 10) powinno zwrócić dziesiątą linię z pliku plik.txt.
Go to the top of the page
+Quote Post
ddiceman
post 9.02.2009, 17:54:41
Post #6





Grupa: Zarejestrowani
Postów: 326
Pomógł: 121
Dołączył: 23.07.2008
Skąd: Wrocław

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


jak plik nie jest za duzy mozesz wpakowac go calego do pamieci i odczytacp otrzebna Ci linie:
  1. <?php
  2. $plik = file('cfg.ini');
  3.   echo $plik[$nr_linii];
  4. ?>


no albo:
  1. <?php
  2. $uchwyt = @fopen ("/home/tenior/www/test/plik.txt", "r");
  3. if ($uchwyt) {
  4. for($i=0; $i<$nr_linii && !feof($uchwyt); $i++) {
  5.   $buffer = fgets($uchwyt, 4096);
  6. }
  7. if(!feof($uchwyt)) echo($buffer);
  8. fclose ($uchwyt);
  9. }
  10. ?>


Ten post edytował ddiceman 9.02.2009, 17:58:48
Go to the top of the page
+Quote Post
tenior
post 10.02.2009, 12:39:37
Post #7





Grupa: Zarejestrowani
Postów: 58
Pomógł: 2
Dołączył: 16.11.2008

Ostrzeżenie: (10%)
X----


phpion, pomógł
reszta skryptów nie działa, mam jeszcze pytanie. Wyciąga konkretną linijkę tekstu:
MaxClients=9
a jak zrobić żeby wczytywało nam tylko numer tego?
Go to the top of the page
+Quote Post
erix
post 10.02.2009, 12:53:49
Post #8





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




preg_match" title="Zobacz w manualu PHP" target="_manual albo explode" title="Zobacz w manualu PHP" target="_manual

Chociaż, jeśli dobrze myślę, to rozwiązaniem Twojego problemu jest parse_ini_file" title="Zobacz w manualu PHP" target="_manual.


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

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
tenior
post 10.02.2009, 13:47:24
Post #9





Grupa: Zarejestrowani
Postów: 58
Pomógł: 2
Dołączył: 16.11.2008

Ostrzeżenie: (10%)
X----


Jest rozwiązanie:
Plik cfg.ini
; początek pliku
MaxClients=83
; koniec

  1. <?php
  2.  
  3. $the_array = parse_ini_file("/home/tenior/www/test/cfg.ini");
  4. echo $the_array["MaxClients"];
  5.  
  6. ?>


zwraca wartość:
83
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: 26.04.2025 - 03:54