Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Usuwanie linijki z pliku csv
pspgor
post 28.04.2012, 08:58:06
Post #1





Grupa: Zarejestrowani
Postów: 81
Pomógł: 0
Dołączył: 27.02.2011

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


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

Ten post edytował pspgor 28.04.2012, 08:58:30
Go to the top of the page
+Quote Post
Majkelo23
post 28.04.2012, 09:01:11
Post #2





Grupa: Zarejestrowani
Postów: 226
Pomógł: 17
Dołączył: 13.02.2012

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


  1. $ciag = 'ale jaja, kurde delete';
  2. $usun = 'kurde delete';
  3. $tekst = str_replace($usun, '', $ciag); // zwróci 'ale jaja,'


Ten post edytował Majkelo23 28.04.2012, 09:03:17
Go to the top of the page
+Quote Post
pspgor
post 28.04.2012, 09:38:35
Post #3





Grupa: Zarejestrowani
Postów: 81
Pomógł: 0
Dołączył: 27.02.2011

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


Tylko chodziło mi o usunięcie tej linijki z pliku smile.gif

A jakoś ta instrukcja nie chce mi tak zadziałać :/
Go to the top of the page
+Quote Post
mortus
post 28.04.2012, 10:18:08
Post #4





Grupa: Zarejestrowani
Postów: 2 178
Pomógł: 596
Dołączył: 25.09.2009
Skąd: Piwniczna-Zdrój

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


Trzeba zawartość tego pliku przepisać z pominięciem określonych linii.
Go to the top of the page
+Quote Post
pspgor
post 28.04.2012, 11:28:30
Post #5





Grupa: Zarejestrowani
Postów: 81
Pomógł: 0
Dołączył: 27.02.2011

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


A w jaki prosty sposób mogę to zrobić? smile.gif
Go to the top of the page
+Quote Post
mortus
post 28.04.2012, 11:48:56
Post #6





Grupa: Zarejestrowani
Postów: 2 178
Pomógł: 596
Dołączył: 25.09.2009
Skąd: Piwniczna-Zdrój

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


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.
Go to the top of the page
+Quote Post
pspgor
post 28.04.2012, 12:31:52
Post #7





Grupa: Zarejestrowani
Postów: 81
Pomógł: 0
Dołączył: 27.02.2011

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


No i wszystko działa. Dziękuję pięknie. wink.gif
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: 19.07.2025 - 19:29