Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Pobieranie danych za pomocą curl, odczyt strony i zapis do pliku
dlinek
post 19.10.2007, 08:16:36
Post #1





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 11.03.2006

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


Chciałbym pobrać zawartość strony xml i zapisać ją w pliku aby poźniej za pomocą simple XML wyświetlić u siebie na stronie to co mnie interesuje.

zrobiłem coś takiego:

Kod
$file = fopen("team.xml", "w");
$c = curl_init();
curl_setopt($c, CURLOPT_URL, "http://online.sokker.org/xml/team-51625.xml");
curl_setopt($c, CURLOPT_FILE, $file);
curl_exec($c);
curl_close($c);
fclose($file);

i tworzy mi pusty plik team.xml na serwerze nic w nim nie zapisując sad.gif co robię źle questionmark.gif bede bardzo wdzięczny za odp.
Go to the top of the page
+Quote Post
michu2510
post 19.10.2007, 15:47:16
Post #2





Grupa: Zarejestrowani
Postów: 81
Pomógł: 0
Dołączył: 11.10.2007
Skąd: http://localhost/

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


A czy zajrzałeś tu i tu

Ten post edytował michu2510 19.10.2007, 15:48:08
Go to the top of the page
+Quote Post
dlinek
post 19.10.2007, 17:31:45
Post #3





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 11.03.2006

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


chodzi o to że te pliki xml są generowane w czasie rzeczywistym czyli nie leżą na serwerze cały czas.
W momencie wpisania adresu : http://online.sokker.org/xml/team-51625.xml
plik team-51625.xml jest generowany i dopiero wyświetlany.
dlatego nie działa include ani file_get_contents. sad.gif

skrypt musiałby najpierw otworzyć strone i dopiero zapisać wygenerowany plik czy to wogóle możliwe questionmark.gif
Go to the top of the page
+Quote Post
NuLL
post 19.10.2007, 17:43:49
Post #4





Grupa: Zarejestrowani
Postów: 2 262
Pomógł: 21
Dołączył: 3.05.2004
Skąd: Sopot, Krakow, W-wa

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


File get content powinno dzialac - pokaz kod albo komunikat smile.gif


--------------------
Javascript, Coffeescript, Node.js, Mongo, CouchDb, chmury, workery & inne bajery - zycie jest zbyt krotkie aby miec nudna prace :)
Go to the top of the page
+Quote Post
dlinek
post 20.10.2007, 11:48:52
Post #5





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 11.03.2006

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


<?php
$c = curl_init();
curl_setopt($c, CURLOPT_URL, 'http://online.sokker.org/start.php?session=xml');
curl_setopt($c, CURLOPT_POST, 1);
curl_setopt($c, CURLOPT_POSTFIELDS, 'ilogin=d_linek&ipassword=testowy'); //autoryzacja
curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);
file_put_contents ( 'sokker.xml' , file_get_contents ( 'http://online.sokker.org/xml/team-51625.xml' ) ) ;
$page = curl_exec($c);

curl_close($c);
echo 'Wynik: <br>'.$page;


błędu nie zwraca pobiera i zapisuje plik ale ze strony głównej tj. http://online.sokker.org/xml/

a mi chodzi o ten generowany automatycznie team-51625.xml.



Dowiedziałem sie ze trzeba oszukać serwer wysyłając nagłówek reaquest ze swojej strony tak jakbym to robił ze strony serwera sokker.
Wiec zrobiłem tak:

zbadalem snifferem jaki jest naglowek i ustawilem:

Kod:

  1. <?php
  2. $header[] = "Host: online.sokker.org";
  3. $header[] = "User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.8.1.Cool Gecko/20071008 Firefox/2.0.0.8";
  4. $header[] = "Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5";
  5. $header[] = "Accept-Language: pl,en-us;q=0.7,en;q=0.3";
  6. $header[] = "Accept-Encoding: gzip,deflate";
  7. $header[] = "Keep-Alive: 300";
  8. $header[] = "Connection: keep-alive";
  9. $header[] = "Cookie: conf=3944038; lang=pl; XMLSESSID=253ovp92sem3bpdsjo0hvkiks1";
  10. $header[] = "Content-Type: text/xml";
  11.  
  12. $file = fopen("team4.xml", "w");
  13. $c = curl_init();
  14. curl_setopt ($c, CURLOPT_HEADER, 0);
  15. curl_setopt($c, CURLOPT_HTTPHEADER, $header);
  16. curl_setopt($c, CURLOPT_RETURNTRANSFER, 0);
  17. curl_setopt($c, CURLOPT_URL, "http://online.sokker.org/xml/transfers.xml");
  18. curl_setopt($c, CURLOPT_FILE, $file);
  19. curl_exec($c);
  20. echo $file;
  21. curl_close($c);
  22. fclose($file);
  23. echo $file;
  24. ?>


No i pobiera plik ale zamiast poprawnego pliku XML otrzymuję krzaki w stylu:

‹ µ™ÝNŰHÇďyŠQîSćűĂ
é)«Š¶‹€ÝH{ƒÇ€7NŚlSš\öIVÚ›˝ď# ľWgÜ.
rf[áÂŰŁŃ/çüĎ˙F/?/đ)Ęň8] Đ 8 Ń2Lgńňú`đÇůŃP@^čĺL'é2:¬˘|đrĽ7*2˝ĚŻĚ{ ˆôâÝä`ŔÇl0ŢŹ÷Ě5˝›Ś•’ŚÉŃľą´+y”$Qv^ľ6.ßí?Ył]Ţ­ż+F(ío.=ÝçŁ^Dăëűx=[ë0ş¸ŹŁű8ÍV›Ű–Ź<ٸ\ůđúôpş±őăc·‰6Kö€Ü| í?®ŘŰ3]Dc ˇ"8„`@@sĘňNąC‡Ń˜CÍ»ĺőŻ}˙ÔÉ]4FJü¸»±fđíođŰÂ’r®¶łD KTĂň'ď–ďÓü¦ý9Ó|ŚŰŘ{˜rNÇ^¤ ` ƒTU�2J<P’- b$Pw
PB0ę'@§:+48Îô"ź¤ě)=`#\)ć%K,YČH*d q†*cÍ©JA8iOU{˘úF_źÄ·QŽBň „u'?TCFaćŻÂcé‰TĆP


rozmiar pliku sie zgadza ale to dalej nie to sad.gif ktoś wie dlaczego tak się dzieje questionmark.gif
Go to the top of the page
+Quote Post
marekk
post 26.10.2007, 17:16:51
Post #6





Grupa: Zarejestrowani
Postów: 65
Pomógł: 0
Dołączył: 27.05.2003

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


Przyłączam się do pytania, mam ten sam problem.

Czy zna ktoś jakąs skuteczną metodę pobierania takich danych, niekoniecznie z wykorzystaniem curla?
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: 18.06.2025 - 02:35