Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php] pojawiajcy się znak końca linii przy zapisie do pliku, pojawia się tylko gdy usuwam ostatni element tablicy (ostatni wiersz)
windman
post
Post #1





Grupa: Zarejestrowani
Postów: 184
Pomógł: 13
Dołączył: 7.01.2008

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


Witam,

Ponieżej zamieściłem mały skrypt, z którym mam problemy. Sprawa dotyczy odczytu i zapisu do pliku txt.
CZESC 1 odczytuje zawartosc pliku i tworzy tablice dataArray (2 wymiary: 1wym-wiersze z pliku, 2wym-elementy wiersza odzielone przecinkiem).
CZESC 2 dokłanie na odwrót z tablicy dataArray tworzy stringi - stringRow. Wyjątek stanowi element tablicy dataArray z indeksem 2, który powinien zostac pominięty.
CZESC 3 zapusuje string do pliku.

Wszystko działa prawidłowo z tym, żę gdy pomijam ostatni element tablicy w pliku pojawia się na końcu znak nowej lini. Gdy pomijam inne elementy tablicy to wszystko jest ok.
Dodam, że gdy usunę linię pomijającą wskazany element tablicy, tablica zostaje przepisana w całości i zapisana do pliku i plik wygląda identycznie jak przed operacją, żadnych nowych znaków końca linii, ten pojawia się tylko gdy z tablicy dataArray pomijam ostatni element.

Dlaczego? questionmark.gif
Pozdrawiam

  1. <?php
  2. //CZESC 1
  3. $fileContent = file($file);
  4. foreach($fileContent as $k=>$v){
  5. $dataArray[$k] = explode(',',$v);
  6. }
  7.  
  8. //CZESC 2
  9. $stringRow=false;
  10. foreach($dataArray as $k=>$v){
  11. if($k == 2) continue; // tutaj pojawiają się problemy
  12. $stringRow.=implode(',',$v);
  13. }
  14.  
  15. //CZESC 3
  16. if(@$fp=fopen($file, "w+")){
  17. if(flock($fp, LOCK_EX)){
  18. fwrite($fp, $stringRow);
  19. flock($fp, LOCK_UN);
  20. }
  21. }
  22. ?>


Ten post edytował windman 2.03.2009, 09:38:11
Go to the top of the page
+Quote Post

Posty w temacie


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 Aktualny czas: 21.08.2025 - 04:01