Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Usuwanie ostatnich 5 linii z pliku...
Forum PHP.pl > Forum > Przedszkole
kuba_pilach
Witam!
Dam kawałek kodu:
  1. elseif($four==1140) {
  2. unset($plik[0]);
  3. unset($plik[1]);
  4. unset($plik[2]);
  5. unset($plik[3]);
  6. unset($plik[4]);
  7. unset($plik[5]);
  8. unset($plik[6]);
  9. unset($plik[7]);
  10. unset($plik[8]);
  11. unset($plik[9]);
  12. unset($plik[10]);
  13. unset($plik[11]);
  14. unset($plik[12]);
  15. unset($plik[13]);
  16. unset($plik[14]);
  17. unset($plik[15]);
  18. unset($plik[16]);
  19. unset($plik[17]);
  20. unset($plik[18]);
  21. unset($plik[19]);
  22. unset($plik[20]);
  23. unset($plik[21]);
  24. unset($plik[22]);
  25. unset($plik[23]);
  26. unset($plik[24]);
  27. unset($plik[25]);
  28. unset($plik[26]);
  29. unset($plik[27]);
  30. unset($plik[28]);
  31. unset($plik[29]);
  32. unset($plik[30]);
  33.  
  34. foreach($plik as $stareDane) {
  35. if($m!==true) {
  36. $fp = fopen($name, "w+");
  37. fclose($fp);
  38.  
  39. // otwarcie pliku do zapisu
  40. $fp = fopen($name, "r+");
  41. // zapisanie danych
  42. $pismo = ':20:
  43. :25:'.$numer;
  44. fputs($fp, $pismo);
  45. fclose($fp);
  46. $m=true;
  47. }
  48.  
  49. $stareDane = str_replace('"', '', $stareDane);
  50. $stareDane = str_replace("'", "", $stareDane);
  51. $stareDanex = explode(';', $stareDane);
  52. $data1 = str_replace('-','', $stareDanex[0]);
  53. $data1 = substr($data1, 2);
  54.  
  55. $data2 = str_replace('-','', $stareDanex[1]);
  56. $data2 = substr($data2, 2);
  57.  
  58. $t = substr($stareDanex[6], 0, 1);
  59. if($t == '-') {
  60. $kwota = substr($stareDanex[6], 1);
  61. $typ = 'D';
  62. } else {
  63. $kwota = $stareDanex[6];
  64. $typ = 'C';
  65. }
  66.  
  67. $waluta = 'N';
  68. $nadawca = str_replace(' ','', $stareDanex[3]);
  69. if (strlen($stareDanex[5]) == 0) {
  70. $opis = $stareDanex[2];
  71. }
  72. else {
  73. $opis = $stareDanex[5];
  74. }
  75. $numer = $stareDanex[4];
  76. $numer = str_replace(' ','', $numer);
  77. $tekst='
  78. :61:'.$data1.$data2.$typ.$waluta.$kwota.'NTRFNONREF//
  79. :86:
  80. <20'.$opis.'
  81. <27'.$nadawca.'
  82. <38'.$numer;
  83. // :61:1007290729CN158,60
  84. // echo $tekst;
  85. // zapisanie nowych danych
  86.  
  87. // otwarcie pliku do zapisu
  88. $fp = fopen($name, "r+");
  89.  
  90. // zapisanie danych
  91. fputs($fp, $tekst);
  92.  
  93. // zamknięcie pliku
  94. fclose($fp);
  95. }
  96. }


Wcześniej mam deklarację zmiennych:
  1. //odczytanie danych
  2. $plik = file($name);
  3. $stareDane = fread($fp, filesize($name));


I niby wszystko łatwe i w porządku ale wychodzi mi zamiast
Kod
:20:
:25:PL53105017641000002304111590

-- to kilka razy --
:61:1007290729CN158,60
<20obsluga księgowa Jolanta Piankowski Sopot ul Poniatowskieg 6 miesiac lipiec
<27 PIANKOWSKI JOLANTA ul. Ks.J.Poniatowskiego 6 81-724 SOPOT
<38 57191010482216995882360001


To wychodzi mi:
Kod


:61:przypadku wystąpienia niezgodności w przesłanym zestawieniu w zakresie wykonywanych operacji na rachunku, salda rachunku, prosimy o kontakt z multilinią.CNNTRFNONREF//
:86:
<20
<27
<3845021178527813114020170000410207457825


Moje wnioski są następujące: ostatnie 5 linijek przeszkadza operacji... Pomoże ktoś?
Fifi209
po co tyle razy unset? Nie łatwiej wyciąć? array_slice ?

ew. fseek, fgets
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.