Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Łączenie plików każda linijka po każdej linijce
d0m1n1k_
post
Post #1





Grupa: Zarejestrowani
Postów: 208
Pomógł: 3
Dołączył: 13.07.2009
Skąd: Tarnów

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


Witam,
próbuję połączyć pliki:
PLIKA (1A, 1B, 1C, 1D...)
PLIKX (2A, 2B, 2C, 2D...)
w następujący sposób:
file (1A2A, 1A2B, 1A2C, 1A2D, 1B2A, 1B2B, 1B2C, 1B2D...)

Niestety wychodzi mi tylko:
file (1A2A, 1A2B, 1A2C, 1A2D)
i kończy pętle.

Tak wygląda kod:

  1. <?php
  2.  
  3. $plikA = file('litery.txt');
  4. $plikX = file('cyfry.txt');
  5.  
  6. $file = "wyjscie.txt";
  7. $i = 0;
  8.  
  9. foreach($plikX as $x)
  10. {
  11. $i++;
  12. list($wX) = explode('\n', trim($x));
  13.  
  14. $j = 0;
  15.  
  16. foreach($plikA as $qe)
  17. {
  18. $j++;
  19. list($wA) = explode('\n', trim($qe));
  20.  
  21. $dane0 = "$wA" . "$wX" . " \n";
  22. }
  23.  
  24. $outputter = $dane0;
  25. $fp = fopen($file, "a");
  26. flock($fp, 2);
  27. fwrite($fp, $outputter);
  28. flock($fp, 3);
  29. fclose($fp);
  30. }
  31.  
  32. ?>


Gdzie popełniam błąd?
Będę bardzo wdzięczny za pomoc i wskazówki.


--------------------
Prywatna koncepcja pasji - SprawdzAuto.info
Go to the top of the page
+Quote Post
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




1) Patrzyles w ogole co zawierają zmienne na poszczegolnych etapach??
Chocby tu: foreach($plikX as $x)
przecież $x to jest juz kolejna linia i nie ma sensu robic explode po x po nowej linii, bo x jest nową linią.

2) Poza tym, jak chcesz w petli coś dopisywac do zmiennej to sie to robi tak:
$zm.='dopisz';
a nie tak:
$zm= 'nadpisz';

Kluczową role gra tu KROPKA, ktora łączy teksty a nie nadpisuje.


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

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
d0m1n1k_
post
Post #3





Grupa: Zarejestrowani
Postów: 208
Pomógł: 3
Dołączył: 13.07.2009
Skąd: Tarnów

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


Jeśli mam być szczery to zabiłeś mi klina.
Nie wiem co mam zrobić.
Usunąłem "as $x" i nie działa.


--------------------
Prywatna koncepcja pasji - SprawdzAuto.info
Go to the top of the page
+Quote Post
nospor
post
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Nigdzie nie kazalem ci usuwac as $x. Kazalem ci sprawdzic co zawierają zmienne na ktorych operujesz.

Dodatkowo wyraznie napisalem, ze masz dane dopisywac a nie nadpisywac...
o tu: $dane0 = "$wA" . "$wX" . " \n";


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

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
d0m1n1k_
post
Post #5





Grupa: Zarejestrowani
Postów: 208
Pomógł: 3
Dołączył: 13.07.2009
Skąd: Tarnów

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


Zmienniłem na:
  1. <?php
  2.  
  3. $plikA = file('litery.txt');
  4. $plikX = file('cyfry.txt');
  5.  
  6. $file = "baza.txt";
  7. $i = 0;
  8.  
  9. foreach($plikX as $x)
  10. {
  11. $i++;
  12. list($wX) = explode('\n', trim($x));
  13. echo "$wX<br />$x<br />";
  14.  
  15. $j = 0;
  16.  
  17. foreach($plikA as $a)
  18. {
  19. $j++;
  20. list($wA) = explode('\n', trim($a));
  21. echo "<font color=\"red\">$wA</font><br />";
  22. echo "<font color=\"blue\">$a</font><br />" . "\n";
  23.  
  24. }
  25. }
  26.  
  27. ?>


i wyszło:

A1
A1
B1
B1
B2
B2
B3
B3
B4
B4
B5
B5
A2
A2
B1
B1
B2
B2
B3
B3
B4
B4
B5
B5
A3
A3
B1
B1
B2
B2
B3
B3
B4
B4
B5
B5
A4
A4
B1
B1
B2
B2
B3
B3
B4
B4
B5
B5
A5
A5
B1
B1
B2
B2
B3
B3
B4
B4
B5
B5
A6
A6
B1
B1
B2
B2
B3
B3
B4
B4
B5
B5
A7
A7
B1
B1
B2
B2
B3
B3
B4
B4
B5
B5


--------------------
Prywatna koncepcja pasji - SprawdzAuto.info
Go to the top of the page
+Quote Post
nospor
post
Post #6





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




No i widac wyraźnie, że $x jest już tym czego szukasz i bezsensem jest jeszcze jej explodowanie....
list($wX) = explode('\n', trim($x)); to jest bezsensem. Staraj sie czytac co ci piszą.

Pisalem ci rowniez, o DOPISYWANIU a nie NADPISYWANIU


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

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
d0m1n1k_
post
Post #7





Grupa: Zarejestrowani
Postów: 208
Pomógł: 3
Dołączył: 13.07.2009
Skąd: Tarnów

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


no i teraz wiem co i jak :-)
A jako bonusowe pytanie, chciałbym spytać jak zrobić, aby działać na więcej jak dwóch plikach?
Osobna pętla dla każdego typu połączenia?

Przykład

PlikA, PlikB, PlikC, PlikD

Wyniki:
PlikAPlikB, PlikAPlikC, PlikAPlikD, PlikAPlikA ... PlikAPlikBPlikCPlikD


--------------------
Prywatna koncepcja pasji - SprawdzAuto.info
Go to the top of the page
+Quote Post
nospor
post
Post #8





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
no i teraz wiem co i jak :-)
Tylko ze to wszystko miales juz napisane w pierwszym poscie.


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

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

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 Aktualny czas: 20.08.2025 - 20:27