Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php] usuwanie ostatniej linijki w pliku
markuz
post
Post #1





Grupa: Zarejestrowani
Postów: 1 240
Pomógł: 278
Dołączył: 11.03.2008

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


Jak usunąć ostatnią linijkę w pliku?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
l0ud
post
Post #2





Grupa: Zarejestrowani
Postów: 1 387
Pomógł: 273
Dołączył: 18.02.2008

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


Pewnie da się zrobić to prościej ale...

  1. <?php
  2.  
  3. $arr = file('asd.txt');
  4.  
  5. unset($arr[count($arr)-1]);
  6. $arr[count($arr)-1] = substr($arr[count($arr)-1],0,strlen($arr[count($arr)-1])-2);
  7.  
  8. file_put_contents('asd.txt',implode(null,$arr));
  9.  
  10. ?>


Kod zadziała, o ile znaki końca linii są w stylu windowsa (\r\n a nie \n). Jeżeli są w stylu unixa, zamień w kodzie wyżej -2 na -1 (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Funkcja file() czyta plik i rozbija go na tablicę - każda linia jest oddzielnym jej elementem. Funkcja unset w kodzie wyżej usuwa ostatni element tablicy. To dziwne wykorzystanie substr i strlen usuwa ostatni znak z przedostatniej linii - znak nowej linii. Dzięki temu w pliku nie pozostanie na końcu pusta linia. file_put_contents zapisuje zmieniony plik, złożony z tablicy przez funkcję implode.

http://pl2.php.net/manual/pl/function.file.php
http://pl2.php.net/manual/pl/function.unset.php
http://pl2.php.net/manual/pl/function.substr.php
http://pl2.php.net/manual/pl/function.strpos.php
http://pl2.php.net/manual/pl/function.implode.php
http://pl2.php.net/manual/pl/function.file-put-contents.php

Z chęcią dowiem się, jak zrobić to prościej (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
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: 14.10.2025 - 14:38