Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Porównywanie plików txt oraz dane z curl
Forum PHP.pl > Forum > Przedszkole
bartisz
witam
mam taki problem:
skrypt pobiera kod html z serwera i porównuje go z plikiem txt (jeśli jest taki sam - wypisuje "taki sam", jeśli nie "nie").

Niestety za każdym razem pojawia się "nie", nawet sprawdzałem kody porównując programem.
Dokument html pobierany jest za pomocą CURLa. Drugi plik to plik tekstowy *.txt.

Bardzo proszę o pomoc
pozdrawiam.
wookieb
A moze kod?
bartisz
index.php
  1. $url=curl.php;
  2.  
  3. $plik=file_get_contents($url);
  4. $p1=file_get_contents('porownanie.txt');
  5. if($p1==$plik){
  6. echo "Zgadza się";
  7. }
  8. else{
  9. echo "Nie zgadza się";
  10. }
  11. ?>


plik pobierający kod html:
  1. <?PHP
  2. $ch = curl_init("http://localhost/dokument.html");
  3. curl_setopt($ch, CURLOPT_HTTP_VERSION, 1.1);
  4. curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  5. curl_setopt($ch, CURLOPT_FOLLOWLOCATION, false);
  6. curl_setopt($ch, CURLOPT_TIMEOUT, 30);
  7. curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (X11; U; Linux i386; pl; rv:1.8.0.3) Gecko/20060426 Firefox/1.5.0.3' );
  8. $page=curl_exec($ch);
  9. echo $page;
  10. curl_close($ch);
  11. ?>
wookieb
A co to to?
  1. $url=curl.php;

Sprawdź po prostu co zawierają obie porównane zmienne.
bartisz
tak, właśnie próbowałem. Pokazywało dokładnie to samo... (używając echo() )


$url=curl.php; - to plik odpowiedzialny za pobieranie danych (jego zawartość to dolny kod, który podałem)
siurek22
polaczylem oba pliki
  1. <?php
  2. $url="http://example.com/";
  3.  
  4. $plik=file_get_contents($url);
  5.  
  6.  
  7.  
  8. $ch = curl_init($url);
  9. curl_setopt($ch, CURLOPT_HTTP_VERSION, 1.1);
  10. curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  11. curl_setopt($ch, CURLOPT_FOLLOWLOCATION, false);
  12. curl_setopt($ch, CURLOPT_TIMEOUT, 30);
  13. curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (X11; U; Linux i386; pl; rv:1.8.0.3) Gecko/20060426 Firefox/1.5.0.3' );
  14. $p1=curl_exec($ch);
  15.  
  16. curl_close($ch);
  17. //echo $p1;
  18.  
  19. if($p1==$plik){
  20. echo "Zgadza się";
  21. }
  22. else{
  23. echo "Nie zgadza się";
  24. }
  25. ?>


i kod dziala, ale chyba wiem z czym masz problem prawdopodobnie strona za kazdym razem generuje jakas reklame czy cos takiego i zmienia sie ilosc znakow...
wookieb
Wyświetl zmienne za pomocą var_dump. Zobaczysz wtedy parę białych znaków które mogę nie pasować.
bartisz
Plik do curl i index.php właśnie muszą być oddzielne ;/ to jest podstawa mojego skryptu.


Cytat(wookieb @ 11.07.2010, 16:59:27 ) *
Wyświetl zmienne za pomocą var_dump. Zobaczysz wtedy parę białych znaków które mogę nie pasować.


ze strony -> 1166
z pliku txt ->1201
oczywiście oba są stringami

macie jakieś pomysły, co by mogło powodować tą rozbieżność?

btw. strona nie generuje żadnych reklam.
siurek22
1 daj trim na oba, powinno zadzialac bo mozliwe ze eof lapie ci na koncu
2 machnij echo i odpal plik w konsoli php plik.php >> C:/plik.txt pozniej wyswietl druga zmienna i odal tak samo tylko inna nazwe pliku i szukaj roznic
bartisz
Cytat(siurek22 @ 11.07.2010, 17:34:04 ) *
1 daj trim na oba, powinno zadzialac bo mozliwe ze eof lapie ci na koncu
2 machnij echo i odpal plik w konsoli php plik.php >> C:/plik.txt pozniej wyswietl druga zmienna i odal tak samo tylko inna nazwe pliku i szukaj roznic


z trimem próbowałem wcześniej ;/

ale z problemem poradziłem sobie używając funkcji strpos() smile.gif

pozdrawiam
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.