Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]php porównywanie zawartości dwóch plików
canismajoris
post
Post #1





Grupa: Zarejestrowani
Postów: 68
Pomógł: 0
Dołączył: 11.01.2012

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


witam

za pomocą czego można porownać zawartość dwóch podobnych plików tekstowych i wyplucie brakujących linijek (różnic)

plik1

kot
pies
mysz
lalka
koń

plik2

kot
pies
koń

jak porównać i wypluć mysz i lalka??

jak robie za pomocą preg_match i foreach to mi dubluje wszystko bo sprawdza dla każdego wpisu.

może ktoś pomóc?
dzięki z góry.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
nospor
post
Post #2





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




Przy pomocy file() robisz dwie tablice z plików a następnie przy pomocy
http://www.php.net/manual/en/function.array-diff.php
znajdujesz rożnice
Go to the top of the page
+Quote Post
Crozin
post
Post #3





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


Skorzystaj z Diffa.
Go to the top of the page
+Quote Post
canismajoris
post
Post #4





Grupa: Zarejestrowani
Postów: 68
Pomógł: 0
Dołączył: 11.01.2012

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


  1. $plik1=file("plik1.txt");
  2. $plik2=file("plik2.txt");
  3.  
  4.  
  5.  
  6. tab1=array($plik1);
  7. tab2=array($plik2);
  8.  
  9. array_diff($tab1,$tab2)


nie działa , próbowałem z foreach ( $plik1 as $linia => $value ) + explode i to do array i tez nie działa.

może jeszcze jakaś podpowiedz.... pls
Go to the top of the page
+Quote Post
nospor
post
Post #5





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




Ale weź trochę mysl jak robisz....
tab1=array($plik1);
Przecież $plik1 jest już tablicą. Po co jeszcze raz to zamieniasz na tablice?
Go to the top of the page
+Quote Post
canismajoris
post
Post #6





Grupa: Zarejestrowani
Postów: 68
Pomógł: 0
Dołączył: 11.01.2012

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


  1. $plik1=file("plik1.txt");
  2. $plik2=file("plik2.txt");
  3.  
  4. $wynik=array_diff($plik1,$plik2);
  5. $n=count($wynik);
  6. for ($i=0;$i<$n; $i++)
  7. echo $wynik[$i].'<br />';


wynik :

aligator zjada zaby
ameba zjada plankton
byk zjada trawe
baran zjada trawe

kuna zjada mysz
jeĹź zjada sliwki
pies zjada wszystko
kot zjada whiskas


niby działa, wypisał mi różnice, a jeszcze jedno dodatkowe pytane jak zrobić aby wypluł mi różnice tylko biorąc pod uwage pierwszy wyraz. nie interesuje mnie cała lina tylko pierwsze wyrazy w obu plikach. czyli w 1 pliku jest :
kot zjada whiskas

w drugim kota nie ma wiec wywala mi na ekran tylko pierwszy wyraz tj. kot

bardzo z góry dziękuję bo już mi głowa pęka.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 11:02