Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [XML][PHP] odczyt źródła i zapis do lokalnego pliku XML
Forum PHP.pl > Forum > Przedszkole
robak142
Witam,
Chciałbym odczytać xml'a od dostawcy danych, następnie zapisać wszystkie dane do lokalnego pliku xml.
Dane xml po stronie dostawcy generuje zdalny skrypt -załóżmy: http://domena.pl/data/data.php, a dostęp do skryptu wymaga autoryzacji.
Do autoryzacji użyłem cURL.
CODE
$urL='http://domena.pl/data/data.php';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $urL);
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
curl_setopt($ch, CURLOPT_USERPWD, 'user:password');
curl_exec($ch);
curl_close($ch);


Po wywołaniu widzę dane w przeglądarce, ale bez tagów?!. Proszę o pomoc, jak mogę w tym przypadku pobrać dane xml i zapisać je lokalnie na serwerze w formacie xml.
Pozdrawiam i z góry dziękuję.
CuteOne
  1. $exec = curl_exec($ch);
  2.  
  3. file_put_contents('plik.xml', $exec);
robak142
Witam,
Tak byłoby najprościej, lecz z niewiadomych powodów plik zapisuje się pusty lub tylko z '1' w pierwszym znaku pierwszej linii. Może błędnie zastosowałem cURL?

A więc mam taki o to kod:


CODE
<?php
header("Content-type: text/xml; charset=utf-8");
$urL='http://domena.pl/data/data.php';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $urL);
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
curl_setopt($ch, CURLOPT_USERPWD, 'user:pass');
file_put_contents('plik.xml', curl_exec($ch));
curl_close($ch);

?>

W przeglądarce widzę poprawnie drzewo danych xml, ale nie mam pojęcia dlaczego nie zapisuje danych do: plik.xml. Plik jest tworzony ale jedyną jego zawartością jest cyfra 1 w pierwszym wierszu, pierwszej kolumny. Proszę doświadczonych kolegów o wskazanie co czynię źle.
Z góry dziękuję.

Rozwiązanie problemu, może się komuś przyda:

CODE
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://domena.pl/dane.php');
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
curl_setopt($ch, CURLOPT_USERPWD, 'user:pass');
curl_setopt($ch, CURLOPT_FILE, fopen('plik.xml', 'w'));
curl_exec($ch);
curl_close($ch);

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