Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php][xml] Jak otworzyć plik xml?
Forum PHP.pl > Forum > PHP
moyzes
Witam.
Mam taki problem:
Napisałem parser xml. Wszystko działa, gdy plik xml jest lokalnym plikiem - wtedy używam fopen.

Jednak zależy mi, żeby ten plik otwierać ze zdalnego serwera - niestety nie działa wtedy:
fopen("http://serwis.com/pliki/test.xml", "r").

Próbowałem już fsockopen - a właściwie kilka różnych wersji, znalezionych w internecie.
Zawsze wyskakuje błąd:
Warning: fsockopen() [function.fsockopen]: unable to connect to serwis.com:80 in /var/www/sites/stronka/index.php on line 138
Connection refused (111)

Dziękuję za wszelkie sugestie.
sagittariuspl
ściągnij (skopiuj) najpierw plik na lokalny dysk, a potem go przetwarzaj.
moyzes
lopik:
allow_url_fopen ma wartość 1.

sagittariuspl:
mógłbyś skrobnąć jak widzisz taki kod?
sagittariuspl
  1. <?php
  2. function getFile($url, $output)
  3. {
  4. $output = (empty($output)) ? basename($url) : $output;
  5.  
  6. $fp = @fopen($url, 'r');
  7. $out = @fopen($output, 'w');
  8.  
  9. while(!feof($fp))
  10. {
  11. $data =& fgets($fp, 1024);
  12. @fwrite($out, $data);
  13. }
  14.  
  15. fclose($fp);
  16. fclose($out);
  17.  
  18. return file_exists($output);
  19. }
  20. ?>

używam tego do ściągania obrazków z innego serwera i robię to w pętli
$url to adres pliku do ściągnięcia, a $output nazwa pliku pod jakim ma zostać zapisany (jeżeli jest nie podana to plik ma chyba taką samą nazwę). pliki są zapisywane w tym samym katalogu co skrypt (co oczywiście można zmienić). pamiętaj tylko o chmod...
moyzes
hehe, no dobra, ale widzisz ten fragment:

$fp = @fopen($url, 'r');

Właśnie tego używam do otwarcia pliku i nie działa :]
... idę się zastrzelić
sagittariuspl
podaj może adres pliku a ja w wolnej chwili spróbuje zobaczyć co jest grane
moyzes
problem chyba polega na tym, że to plik xml :/
sagittariuspl
plik jak plik... ja do xml użyłem SimpleXML i jestem bardzo zadowolony, ponieważ do odczytywania danych jest bardzo dobry, a wynik przkształceń zapisuje w txt.

sprawdziłem i masz rację, u mnie też nie da się takiego pliku ściagnąc... musisz szukać innej metody
moyzes
Gdy używam SimpleXML (simplexml_load_file), dostaje takie cuś:

Warning: simplexml_load_file(http://serwer.com/pliki/test.xml) [function.simplexml-load-file]: failed to open stream: Connection refused in /var/www/sites/stronka/index.php5 on line 132

Warning: simplexml_load_file() [function.simplexml-load-file]: I/O warning : failed to load external entity "http://serwer.com/pliki/test.xml" in /var/www/sites/stronka/index.php5 on line 132

Czyli za zadne skarby nie moge pobrac pliku xml sad.gif
sticker
skorzystaj z biblioteki curl" title="Zobacz w manualu php" target="_manual ja do ściągania danych w xml z innych serwisów parterskich używałem właśnie tej biblioteki
moyzes
Mam stronę na yoyo.pl, a tam nie ma tej biblioteki :/

Zna ktoś może inne rozwiązanie mojego problemu?

Dobra Panowie i Panie - odwołuję pytanie.
Przeczytałem na forum yoyo.pl:

Na serwerze zostały zablokowane wszelkie funkcje umozliwiające dostęp do danych umieszonych na innych serwerach poprzez użycie połączeń TCP/UDP. Ustawienie to nie będzie zmieniane.

:/

Zna może ktoś jakiś darmowy hosting, z obsługą php5 i nie mającą takiej blokady?
sagittariuspl
a ile potrzebujesz miejsca na stronę? moźe coś bym znalazł na opłaconym komercyjnym wirtualnym serwerze z php5...
moyzes
Na razie miejsca potrzebuję minimalnie, bo dopiero stronka tworzy mi się w głowie winksmiley.jpg

Więc przyjąłbym każdą darowiznę :]
sagittariuspl
pisz na moje gg jutro (dziś już niestety nie zdąże) i znajdziemy ci trochę miejsca na jakis czas
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.