ďťż

[php] zapis linijki 2file

       

Podstrony


telcocafe

w jaki sposob, moglbym w php podmienic zawartosc (np.) 6 linijki w pliku "test.txt" na np. "abc"?



Może coś takiego: w pętli foreach otwierasz plik (nazwa w zmiennej $dane) i zawartość każdej linijki przesyłasz do tablicy $tab. Zawartość przed tą linią szóstą zapisujesz do zmiennej, lub pliku, zawartość szóstej lini do osobnej zmiennej, a tego po szóstej lini do kolejnej zmiennej, lub pliku. Zmieniasz tą szóstą linię w tej zapasowej zmiennej i po kolei dołączasz do pliku. Mam nadzieję, że się dobrze wyraziłem ;)

Może zilustruję przykład:
$dane = file('test.txt'); foreach($dane as $linia) {  $tab[] = $linia; } $tekst_1 = $tab[1]; $tekst_1 .= $tab[2]; ... $zmienna_pomocnicza = $tab[6]; $tekst_cd = $tab[7]; $tekst_cd .= $tab[8]; ... $zmienna_pomocnicza = 'abc'; #i tutaj wszystko zapisujesz od nowa

W tym, co przeczytałem właśnie (zbiór funkcji operujących na plikach i katalogach w PHP), nie ma nic o czymś takim, jakbyś chciał, DJ_ProG. Ale mogłem nie zauważyć :D
Użytkownik pbnan edytował ten post 20 maj 2006, 11:33
nad takim rozwiazaniem myslalem, ale postanowilem zapytac, czy nie ma prostszego, moze fputwartosc($plik,$linijka,$wartosc) ;)
a może jednak jest?


Może coś takiego: w pętli foreach otwierasz plik (nazwa w zmiennej $dane) i zawartość każdej linijki przesyłasz do tablicy $linia. Zawartość przed tą linią szóstą zapisujesz do zmiennej, lub pliku, zawartość szóstej lini do osobnej zmiennej, a tego po szóstej lini do kolejnej zmiennej, lub pliku. Zmieniasz tą szóstą linię w tej zapasowej zmiennej i po kolei dołączasz do pliku. Mam nadzieję, że się dobrze wyraziłem  ;)




Można podobnie, ale troche krócej:
<?php $lines = file('test.txt'); $lines[5] = 'abc'."\n"; file_put_contents('test.txt', join('', $lines)); ?>


wlasnie nad tym rozwiazaniem myslalem.
A co oznacza join('', $lines) ?

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • nvm.keep.pl

  • Sitedesign by AltusUmbrae.