Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Usuwanie linijki z pliku csv
Forum PHP.pl > Forum > Przedszkole
pspgor
Witam. Mam oto taki kod:

  1. //sprawdzanie kodu
  2. $row = 1;
  3. if (($uchwyt = fopen ($opakowanie.".csv","r")) !== FALSE) {
  4. while (($data = fgetcsv($uchwyt, 1000, ",")) !== FALSE) {
  5. $num = count($data);
  6. $row++;
  7. for ($c=0; $c < $num; $c++) {
  8. if ($kod==$data[$c]) {
  9. //kod usuwający linijkę
  10. }
  11.  
  12. $linijka = $data[$c];
  13.  
  14. }
  15.  
  16. }
  17.  
  18. fclose ($uchwyt);
  19. }
  20. //koniec sprawdzania


I jeśli
if ($kod==$data[$c]) {
chciałbym tą linijkę usunąć.
Pojęcia nie mam jak. Z góry dziękuję za pomoc.
Pozdrawiam wink.gif
Majkelo23
  1. $ciag = 'ale jaja, kurde delete';
  2. $usun = 'kurde delete';
  3. $tekst = str_replace($usun, '', $ciag); // zwróci 'ale jaja,'
pspgor
Tylko chodziło mi o usunięcie tej linijki z pliku smile.gif

A jakoś ta instrukcja nie chce mi tak zadziałać :/
mortus
Trzeba zawartość tego pliku przepisać z pominięciem określonych linii.
pspgor
A w jaki prosty sposób mogę to zrobić? smile.gif
mortus
Nie ma jednego polecenia, które zrobi to za Ciebie. Trzeba:
1. otworzyć plik "wejściowy" do odczytu,
2. otworzyć plik "wyjściowy" do zapisu,
3. "spacerując" po liniach pliku "wejściowego" sprawdzać, czy $kod nie znajduje się, w którymś polu danej linii, a jeśli tak, to tę linię przepisać do pliku "wyjściowego",
4. zamknąć oba pliki.

To tak w telegraficznym skrócie. Znaczną część kodu już masz wystarczy dopisać dosłownie parę linijek. Nie jest to strasznie skomplikowane, dla ułatwienia zmodyfikuję pętlę for:
  1. $czyZapisac = true;
  2. for($c = 0; $c < $num; $c++) {
  3. if($kod == $data[$c]) {
  4. $czyZapisac = false;
  5. }
  6. if($czyZapisac) {
  7. fputcsv($uchwytPlikuWyjsciowego, $data);
  8. }
  9. }

Do tego wystarczy dopisać odpowiedni fragment kodu dla punktów 2 i 4.
pspgor
No i wszystko działa. Dziękuję pięknie. wink.gif
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.