Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Kasowanie linii X z pliku txt
Forum PHP.pl > Forum > Przedszkole
Ania-678
Witam.

Mam problem, a mianowicie potrzebuję jakiegoś sposobu do kasowania linijki X (tu jakaś liczba) z pliku txt...

Wykombinowałam coś takiego:
  1. <?php
  2. $plik = file('plik.txt');
  3. unset($plik [10]);
  4. foreach($plik as $numer => $linia)
  5. {
  6. echo $numer.': '.$linia.'<br />';
  7.  
  8. }
  9. ?>


ale unset powoduje tylko że ta linijka znika z echo'wania ale nie z pliku i po wielu próbach (nawet ze str_replace) nie moge dojść jak się ów linijki pozbywać z tegoż pliku...
Hostis
A może by jeszcze zapisać zmiany w pliku questionmark.gif snitch.gif bo tak to wywala tylko z tablicy. A ta tablicą przydało by się jeszcze nadpisać plik smile.gif
sticker
no bo unset działa na pamięci a nie na pliku
1) wczytaj plik tak jak zrobiłeś
2) zrób unseta
3) zrob implode
4) zapisz plik na nowo
Ania-678
Dziad ruszyć nie chce dry.gif

Taki wygląda Moje zapisywanie tekstu do txt:

  1. <?php
  2. $file="plik.txt";
  3. $fp=fopen("$file", "r+");
  4. $dane=$dane.fread($fp, filesize($file));
  5. rewind($fp);
  6. flock($fp, 2);
  7. fwrite($fp, $dane);
  8. flock($fp, 3);
  9. fclose($fp);
  10. ?>


A tak zaś te ferelne wyświetlanie:

  1. <?php
  2. $plik = file('plik.txt');
  3. foreach($plik as $numer => $linia)
  4. {
  5. echo $numer.': '.$linia.'<br />';
  6.  
  7. }
  8. ?>


Zaś sam txt tak:

  1. <?php
  2. BlaBla
  3. Blablablafg
  4. Blablafgdfgabla
  5. Blablabfgdla
  6. Blablablablfdgdf
  7. ?>


Przeszukałam neta na temat tych informacji i nieco było, ale nie zadaje egzaminu...
strife
Cytat
1) wczytaj plik tak jak zrobiłeś

Sądząc po nick'u raczej "zrobiłaś" - powinno być tongue.gif

@Ania-678 - Zrób tak jak napisał ~sticker, zobacz jakie Ci dał wzkazówki. Wszystko masz napisane co masz zrobić, a w kodzie, który podałaś nie widzę, abyś tego sposobu próbowała. Przykładowo:

  1. <?php
  2. $file = file('plik.txt');
  3. unset($file[200]); // usuwamy 200 linijke
  4. file_put_contents('plik.txt', implode(',', $file));
  5. ?>


Pisane z palca, ale mniej więcej tak powinno wyglądać usuwanie konkretnej linijki.

Pozdrawiam.
sticker
ups przpraszam przyzwyczaiłem sie że sami faceci tu siedzią smile.gif
Ania-678
No zrobiłam tak i kasują się laugh.gif

Ale... przy poprzednich wpisach się , mnożą...

  1. <?php
  2. hgfhfghfg
  3. ,,,,,,,,,,,,ghfghfg
  4. ,,,,,,,,,,,,rtretert
  5. ,,,,,,,,,,,,rtete
  6. ,,,,,,,,,,,,rterte
  7. ,,,,,,,,,,,,uyiuy
  8. ,,,,,,,,,,,,qwewqe
  9. ?>


:roll2:

EDIT: Już działa, wystarczyło że usunełam z imlode'a , :

  1. <?php
  2. file_put_contents('plik.txt', implode('', $file));
  3. ?>


winksmiley.jpg
sticker
no to piknie :]
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.