ďťż
Podstrony
|
telcocafeWitam,Jak za pomoca skryptu php usunac ostatnia linie danego pliku? Było z 1.0000E razy, szukaj. Szukałem i nic... nie znalazlem zadnego topicu na ten temat, ani nawet posta... pls pomozcie... Możesz np. wczytywać plik po lini i dodawać do jednej zmiennej sprawdzając czy nie ma końca pliku. Jak jest to wtedy darujesz sobie dodanie ostatniej linii. Następnie czyścisz plik i zapisujesz całą zmienną którą stworzyłeś. Jeden ze sposobów: ładujesz plik do tablicy za pomocą file i zapisujesz go bez ostatniej linijki; $zawartosc = file('plik.txt'); $f = fopen('plik.txt', 'w'); flock($f, LOCK_EX); for ($i=0; $i<count($zawartosc)-1; $i++) fwrite($f, $zawartosc[$i]); flock($f, LOCK_UN); fclose($f); Problem może być to, że cały plik ładujesz do pamięci... jeżeli jest mały to ok, ale dla dużych plików nie jest to polecane Drugi sposób: możesz w jakiś sposób ustawić wskaźnk w pliku na ospowiednim miejscu i użyć ftruncate() do skrócenia pliku. Problemem może być znalezienie tego odpowiendniego miejsca... można w pętli odczytywać znak [ fgetc() ] i cofac się [ fseek() ], ale znowu możesz wykonać wykonujesz strasznie duzo przeskoków w pliku, a nie wiem, czy to nie odbije się na wydajności... możesz wreszcie w pętli odczytywać nie jeen znak, ale np. 100 znaków, szukać ostatniego \n w środku i przesuwać wskaźnik pliku... to chyba najsensowniejsze Użytkownik rzarajczyk1984 edytował ten post 06 listopad 2005, 16:40 |
|||
Sitedesign by AltusUmbrae. |