Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Odczyt z pliku, odczyt z pliku
bolek1
post
Post #1





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 14.07.2009

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


Witam,
napotkałem problem dotyczący odczytu poszczególnej linii z pliku tekstowego. Postanowiłem użyć do tego funkcji file, która każdy element potraktuje jako osobny wiersz z pliku.

plik.txt
  1. 5 //linia pierwsza
  2. 7 //linia druga
  3. 9 //linia trzecia
  4. 1 //linia czwarta


odczyt.php
  1. <?$plik=file("plik.txt");
  2. print_r($plik);
  3. $plik[2]=4;
  4. fwrite ($plik[2]);
  5. fclose($plik);
  6. ?>


W tym kodzie u góry wywala mi błędy:
Wrong parameter count for fwrite() in ...
Warning: fclose(): supplied argument is not a valid stream resource in ...

Chodzi mi o to by ten kod odczytywał trzecią linię i jej wartość zamieniał na np.4.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
hedrazer
post
Post #2





Grupa: Zarejestrowani
Postów: 15
Pomógł: 1
Dołączył: 27.03.2009
Skąd: Pułtusk

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


zle jest to, ze zmieniasz zawartość 4 indeksu tablicy $tab, która jest PUSTA
tak w skrócie.

EDIT:
  1. <?php
  2. $_filename = "./plik.txt";
  3.  
  4. // odczytujemy zawartosc pliku
  5. $handle = fopen($_filename, "r");
  6. $data = fread($handle, filesize($_filename));
  7. fclose($handle);
  8.  
  9. $_array = split("\n", $data); // ladujemy zawartosc do tablicy (dzielimy wg. znaku nowej linii)
  10. $_count = count($_array)-1;
  11.  
  12. // zmieniamy zawartość 3 linii (przy zalozeniu ze numerujemy od 0)
  13. $nr_linii = 3; // liczona od 0 (takze w tym momencie zmienimy 4 linię)
  14. $wartosc  = 123;
  15.  
  16. if($nr_linii <= $_count) { // jezeli nr linii jest mniejszy równy liczbie wszystkich linii w pliku
  17.    // wykonujemy zmianę wartości
  18.    $_array[$nr_linii] = $wartosc;
  19.  
  20. // zapisujemy wynik naszego dzialania...
  21.    $handle = fopen($_filename, "w");
  22.    for($i=0; $i < $_count; $i++) {
  23.        fwrite($handle, $_array[$i]."\n");
  24.    }
  25.    fclose($handle);
  26. }
  27. ?>


napisane na szybko, nalezy dodać tu jeszcze chmod'y i powinno działać ok...

Ten post edytował hedrazer 24.07.2009, 13:18:29
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: 16.10.2025 - 00:30