Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Odczyt z dynamicznie pobieranego pliku XML
Forum PHP.pl > Forum > XML, AJAX > XML
arpi
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 = fopen("cennik_".date('Y-m-d').".xml", "w");
  10. fwrite($fp, curl_exec($ch));
  11. 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ę
Pyton_000
No to może jeszcze oświecisz drogich czytelników w czym jest problem?
arpi
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 ?
Pyton_000
Eh... A spróbowałeś chociaż pobrać go metodami które podałeś?
arpi
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/p...b4903

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.
Pyton_000
Zwykłe
Kod
$test = file_get_contents('https://online.maxcomputers.pl/api/export/products/288c72be826c71c05b490366e6bade73');

a potem rób co chcesz.
arpi
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 ?
Pyton_000
Oczywiście że tak. W zmiennej miałem cały XML z hurtowni.
arpi
Dzięki, będę kombinował na swoim serwerze - może uciągnie tak duży plik.
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-2021 Invision Power Services, Inc.