Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]php porównywanie zawartości dwóch plików
Forum PHP.pl > Forum > Przedszkole
canismajoris
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.
nospor
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
Crozin
Skorzystaj z Diffa.
canismajoris
  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
nospor
Ale weź trochę mysl jak robisz....
tab1=array($plik1);
Przecież $plik1 jest już tablicą. Po co jeszcze raz to zamieniasz na tablice?
canismajoris
  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.
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.