Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Porównywanie plików txt oraz dane z curl
bartisz
post 11.07.2010, 15:32:07
Post #1





Grupa: Zarejestrowani
Postów: 42
Pomógł: 1
Dołączył: 29.10.2007

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


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.
Go to the top of the page
+Quote Post
wookieb
post 11.07.2010, 15:33:57
Post #2





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




A moze kod?


--------------------
Go to the top of the page
+Quote Post
bartisz
post 11.07.2010, 15:43:46
Post #3





Grupa: Zarejestrowani
Postów: 42
Pomógł: 1
Dołączył: 29.10.2007

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


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. ?>
Go to the top of the page
+Quote Post
wookieb
post 11.07.2010, 15:49:11
Post #4





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




A co to to?
  1. $url=curl.php;

Sprawdź po prostu co zawierają obie porównane zmienne.


--------------------
Go to the top of the page
+Quote Post
bartisz
post 11.07.2010, 15:58:10
Post #5





Grupa: Zarejestrowani
Postów: 42
Pomógł: 1
Dołączył: 29.10.2007

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


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)

Ten post edytował bartisz 11.07.2010, 15:58:33
Go to the top of the page
+Quote Post
siurek22
post 11.07.2010, 15:58:59
Post #6





Grupa: Zarejestrowani
Postów: 62
Pomógł: 2
Dołączył: 24.02.2008

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


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...
Go to the top of the page
+Quote Post
wookieb
post 11.07.2010, 15:59:27
Post #7





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Wyświetl zmienne za pomocą var_dump. Zobaczysz wtedy parę białych znaków które mogę nie pasować.


--------------------
Go to the top of the page
+Quote Post
bartisz
post 11.07.2010, 16:25:42
Post #8





Grupa: Zarejestrowani
Postów: 42
Pomógł: 1
Dołączył: 29.10.2007

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


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.

Ten post edytował bartisz 11.07.2010, 16:26:25
Go to the top of the page
+Quote Post
siurek22
post 11.07.2010, 16:34:04
Post #9





Grupa: Zarejestrowani
Postów: 62
Pomógł: 2
Dołączył: 24.02.2008

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


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
Go to the top of the page
+Quote Post
bartisz
post 12.07.2010, 06:55:51
Post #10





Grupa: Zarejestrowani
Postów: 42
Pomógł: 1
Dołączył: 29.10.2007

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


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
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 Wersja Lo-Fi Aktualny czas: 26.06.2025 - 20:26