Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php] operacj na plikach - problem z pustymi liniami na końcu pliku
puz219
post 9.04.2008, 10:02:20
Post #1





Grupa: Zarejestrowani
Postów: 201
Pomógł: 0
Dołączył: 1.07.2007

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


Witam.

Napisałem skrypt, który w zależności od ostatniej linii pliku tekstowego, oblicza mi pewien współczynnik i dopisuje kolejna linię z wyliczonym współczynnikiem.

I teraz problem polega na tym, że jeśli na końcu pliku nie będzie wolnej linii, to nowy (wyliczony przez skrypt) współczynnik dopisze się do ostatniej linii, coś takiego:

ostatnia linia pliku (przed otwarciem): 87546232
ostatnia linia pliku (po dopisaniu współczynnika): 8754623287546245

Z kolei, jeśli zostawię pusta linię na końcu, to skrypt wczyta dane z tej lini, czyli nic i skrypt sie nie wykona, wyświetlając błąd.

Oto skrypt:
  1. <?php
  2. include_once("funkcje.php");
  3. $plik = 'dane.txt';
  4. $dane = file($plik);
  5. $cnt = count($dane);
  6.  
  7. $_line =(120/$dane[$cnt-1])+user_rights($dane[$cnt-1]);
  8.  
  9. $open = fopen($plik,"a+");
  10.  
  11. flock($open,2);
  12.  
  13. fwrite($open,"\n".$_line);
  14.  
  15. flock($open,3);
  16. ?>


Jak rozwiązać te problemy, proszę o pomoc.

Pozdrawiam.

Ten post edytował puz219 9.04.2008, 10:03:20
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
nevt
post 9.04.2008, 10:25:46
Post #2





Grupa: Przyjaciele php.pl
Postów: 1 595
Pomógł: 282
Dołączył: 24.09.2007
Skąd: Reda, Pomorskie.

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


czy masz to pod windows? jeśli tak, to do zmiany wiersza potrzeba dwóch znaków: "\n\r" ...


--------------------

-
Oh no, my young coder. You will find that it is you who are mistaken, about a great many things... -
Go to the top of the page
+Quote Post
puz219
post 9.04.2008, 10:33:58
Post #3





Grupa: Zarejestrowani
Postów: 201
Pomógł: 0
Dołączył: 1.07.2007

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


OK, testuje to narazie na localhoscie i działa (Windows Vista), ale jak będzie sie zachowywało na serwerze, prawdę powiedziawszy nie mam pojęcia, na jakim systemie stoi serwer. czy te dwa znaki nowej linii \r\n nie będą powodować jakichś problemów?

A i jeszcze druga sprawa, skrypt jest swego rodzaju kalkulatorem i oblicza te współczynniki również z plików wczytanych na serwer przez userów, więc na końcu mogą się znajdować puste linie i wtedy skrypt sie posypie, co zrobić z tymi pustymi liniami, nie dało by sie ich jakoś usunąć przy wczytaniu skryptu?

Ten post edytował puz219 9.04.2008, 10:34:51
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: 14.08.2025 - 05:00