Drukowana wersja tematu

Kliknij tu, aby zobaczyć temat w orginalnym formacie

Forum PHP.pl _ XML _ Odczyt z dynamicznie pobieranego pliku XML

Napisany przez: arpi 23.04.2016, 13:53:15

Witam
mam taki problem, mam zintegrowany sklep z różnymi hurtowniami na podstawie plików XML i wszystko działa prawidłowo.
Problem występuje z 1 hurtownią - otóż udostepnia ona link do pobierania cennika w formacie XML.
Wykonując pobranie cennika ręcznie wygląda to tak : wklejam link do przeglądarki, cennik generuje się i wyskakuje okienko z pytaniem gdzie mam zapisać na dysku wygenerowany cennik.

Czy istnieje jakiś sposób na automatyczny odczyt z takiego pliku ?

Testowałem takie funkcje i niestety bez rezultatu.

  1. $filename = "link_do_pliku.php";
  2. $xml = simplexml_load_file($filename);
  3.  
  4. foreach ($xml->products as $produkt) {
  5. .......
  6. }


oraz

  1. $url='link_do_pliku.php';
  2. $ch = curl_init();
  3. curl_setopt($ch, CURLOPT_URL, $url);
  4. curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
  5. curl_setopt($ch, CURLOPT_HEADER, false);
  6. curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  7. curl_setopt($ch, CURLOPT_TIMEOUT, 3600);
  8.  
  9. $fp = http://www.php.net/fopen("cennik_".http://www.php.net/date('Y-m-d').".xml", "w");
  10. http://www.php.net/fwrite($fp, curl_exec($ch));
  11. http://www.php.net/fclose($fp);
  12.  
  13. curl_close($ch);


W innych hurtowniach po wklejeniu linku do cennika w przeglądarkę - cennik wyświetla sie w przeglądarce, wtedy z odczytem nie mam najmniejszego problemu za pomoca 2 powyższych funkcji.
Czy jest możliwy automatyczny odczyt z takiego pliku ?
Jeśli tak to proszę o jakąś wskazówkę

Napisany przez: Pyton_000 23.04.2016, 15:16:52

No to może jeszcze oświecisz drogich czytelników w czym jest problem?

Napisany przez: arpi 23.04.2016, 16:34:07

W jaki sposób odczytać automatycznie dane z pliku XML, którego nie można wyświetlić bezpośrednio w przeglądarce ?
Link udostępniony przez hurtownię wymusza zapisanie wygenerowanego pliku xml na dysku.
Plik ten ma 13MB, z serwera hurtowni pobiera się ok 5-6 min przy ręcznym odpaleniu.

Chciałbym uzyskać informację czy w ogóle da sie odczytać taki plik ?
Jeśli tak, to jaka funkcja php będzie do tego najlepsza ?

Napisany przez: Pyton_000 23.04.2016, 17:37:32

Eh... A spróbowałeś chociaż pobrać go metodami które podałeś?

Napisany przez: arpi 23.04.2016, 19:27:01

Próbowałem na różne sposoby, z różnych serwerów nawet, aby wykluczyć nieprzewidziane limity - niestety bez rezultatu.
Dlatego napisałem posta z zapytaniem...

Aby ułatwić podam link do hurtowni - cennik można generować tylko raz na godzinę (w poniedziałek link będzie nieaktywny)

https://online.maxcomputer.pl/api/export/produkty/288c7826c71c05b4903

Pyton jeśli wiesz jak dobrać się do tego pliku to proszę o pomoc J
Może być bezpośredni odczyt pliku lub zapisanie go na moim serwerze skąd będzie uruchamiany skrypt.

Napisany przez: Pyton_000 23.04.2016, 20:11:32

Zwykłe

Kod
$test = file_get_contents('https://online.maxcomputers.pl/api/export/products/288c72be826c71c05b490366e6bade73');

a potem rób co chcesz.

Napisany przez: arpi 23.04.2016, 21:01:23

Link który podałem tworzy na serwerze hurtowni plik export.xml i od razu wyświetla okno z informacja o jego zapisaniu na dysku. (nie znamy bezpośredniej ścieżki do wygenerowanego pliku.

Gdyby file_get_contents miało zadziałać to moje skrypty też by sobie poradziły...
Przetestowałeś u siebie file_get_contents() na moim przykładzie i możesz odczytać zawartość pliku export.xml ?

Napisany przez: Pyton_000 24.04.2016, 07:13:44

Oczywiście że tak. W zmiennej miałem cały XML z hurtowni.

Napisany przez: arpi 24.04.2016, 20:19:55

Dzięki, będę kombinował na swoim serwerze - może uciągnie tak duży plik.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)