Mam problem i nie wiem jak to ująć w ramy programowe. Otóż mam dwa pliki txt. Plik A.txt i plik B.txt, obydwa te pliki wczytywane są przez skrypt jako tablice funkcją file(nazwa_pliku)

W pliku A.txt mam wypisaną różną ilość rekordów (każdy w osobnej linijce) oddzieloną znakami '::' raz jest to 10 rekordów innym razem 5 rekordów. Wygląda mniej więcej tak:

rekord0
rekord1
rekord2
::
rekord3
rekord4
::
rekord5

W pliku B.txt mam także rekordy chodzi mi o to aby rekord z pliku B.txt inkrementował się o 1 w momencie napotkania znaku '::' w pliku A.txt w innym przypadku tablica wskazująca na rekord powinna być równy ilości inkrementacji do tej pory dokonanych na rekordach z pliku B.txt

Oto jak to wygląda w kodzie:

  1. <?php
  2. global $licznik1;
  3.  
  4. /****************FUNKCJA 1 ZWROC********************/
  5. function zwroc($plik) { //funkcja inkrementujaca wartosc o 1 i zapisujaca to wartosc w pliku, funkcja zwraca ta wartosc
  6. global $ids;
  7.  
  8. $zmienna = file($plik);
  9.  
  10. (int)$zmienna[0];
  11. for ($i=$zmienna[0]; $i<$zmienna[0]+1; $i++) {
  12. }
  13.  
  14.  
  15. $otworz = @fopen($plik, 'w+'); //wskaznik na poczatku pliku
  16. if ($otworz) {
  17. rewind ($otworz); //przesuwa wskaznik na poczatek pliku aby nadpisac poprzednia wartosc
  18. $zapisz = fwrite($otworz, $i); //zapisuje w pliku ile wyslal emiali
  19. $zamknij = fclose ($otworz);
  20. return $i; //zwraca ilosc zapisanych ID
  21. }
  22. else {
  23. echo 'Nie mogę przeczytać pliku ' . $plik;
  24. }
  25. }
  26. /****************FUNKCJA 1 ZWROC********************/
  27.  
  28.  
  29.  
  30. /****************FUNKCJA 2 ZWROC1********************/
  31. function zwroc1($plik) { //funkcja oczytujaca ilosc obsluzonych katalogow
  32.  
  33. $zmienna = file($plik);
  34.  
  35. (int)$zmienna[0];
  36.  
  37. return $zmienna[0]; //zwraca ilosc obsluzonych katalogow
  38. }
  39. /****************FUNKCJA 2 ZWROC1********************/
  40.  
  41.  
  42. $baseUrl = file("A.txt");
  43. // wczytujemy liste danych do tablicy
  44.  
  45. // wczytujemy listę numerow ID
  46. $ids = file("B.txt");
  47. $ids1 = zwroc('ile.txt');
  48. for($i=0, $j=count($ids); $i<$j; $i++)
  49. {
  50.  
  51. if ($ids1 == '' || $ids1 == 0) {$licznik1=0; echo 'Licznik rowny 0';} //WARUNEK0
  52.  
  53. if ($ids[$ids1]=='::') { //WARUNEK1 jesli napotkamy znak '::' wywolujemy funkcje inkrementowania o 1 i zapisania wartosci w pliku zewnetrznym ile1.txt
  54. $licznik1 = zwroc('ile1.txt');
  55. $baseUrl[$licznik1];
  56. echo ':: <br>';
  57. }
  58. else {
  59. $licznik1 = zwroc1('ile1.txt'); //WARUNEK2 w innym przypadku po prostu odczytujemy wartosc z pliku ile1.txt
  60. $baseUrl[$licznik1];
  61. }
  62.  
  63. echo 'Wartosc q dla Ids i to ' . $ids[$ids1] . '<br>'; //to wyswietla sie OK
  64. echo 'Licznik1 to ' . $licznik1 . '<br>'; //pobiera wartosc z pliku ale nie zmienia sie kiedy napotka WARUNEK1
  65.  
  66. //jakies inne instrukcje
  67. ?>