Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [XML][DOM] Problem z pobraniem danych z zew. serwera
Ryrzy
post 14.03.2014, 11:27:29
Post #1





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 14.03.2014

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


Witam, próbuję zrobić skrypt, który pobierałby dane z serwera LG o telefonie na podstawie jego IMEIu... link do takich danych to np:

http://csmg.lgmobile.com:9002/csmg/b2c/cli...358635053320769

Skrypt próbuję zrobić na bazie tego lub tego

i problem pojawia się gdy jako plik podaje adres do tegoż właśnie serwera LG... nic nie pobiera... przez przeglądarke link działa... jeśli zawartosc linku zapisze do testowego xml i link w skrypcie zmienię na odnosnik do samego pliku test.xml to działa i pobiera dane które chcę poprawnie... Co może być powodem problemu pobierania danych bezpośrednio z linku i czy da się to obejść ?

Dziękuje smile.gif
Go to the top of the page
+Quote Post
markuz
post 14.03.2014, 11:49:34
Post #2





Grupa: Zarejestrowani
Postów: 1 240
Pomógł: 278
Dołączył: 11.03.2008

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


  1. <?php
  2.  
  3. $objDOM = new DOMDocument();
  4.  
  5. $objDOM->load("http://csmg.lgmobile.com:9002/csmg/b2c/client/auth_model_check2.jsp?esn=358635053320769");
  6.  
  7. var_dump($objDOM);
  8.  
  9. ?>


U mnie działa..


--------------------
Go to the top of the page
+Quote Post
Ryrzy
post 14.03.2014, 11:55:33
Post #3





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 14.03.2014

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


mam to tak:

  1. <?
  2.  
  3. $objDOM = new DOMDocument();
  4. $objDOM->load("http://csmg.lgmobile.com:9002/csmg/b2c/client/auth_model_check2.jsp?esn=358635053320769");
  5.  
  6. $dane = $objDOM->getElementsByTagName("auth_model_check");
  7.  
  8. foreach( $dane as $value )
  9. {
  10. $model = $value->getElementsByTagName("model");
  11. $models = $model->item(0)->nodeValue;
  12.  
  13.  
  14. $sw_version = $value->getElementsByTagName("sw_version");
  15. $sw_versions = $sw_version->item(0)->nodeValue;
  16.  
  17. echo "$models $sw_versions";
  18. }
  19.  
  20. ?>
i nic nie wyświetla, po zmienia linku na test.xml, w którym jest dokładnie to samo co pod linkiem... działa ;/ wyświetla dane które chce ...

po użyciu Twojego kodu mam:
Cytat
object(DOMDocument)#1 (34) { ["doctype"]=> NULL ["implementation"]=> string(22) "(object value omitted)" ["documentElement"]=> NULL ["actualEncoding"]=> NULL ["encoding"]=> NULL ["xmlEncoding"]=> NULL ["standalone"]=> bool(true) ["xmlStandalone"]=> bool(true) ["version"]=> string(3) "1.0" ["xmlVersion"]=> string(3) "1.0" ["strictErrorChecking"]=> bool(true) ["documentURI"]=> NULL ["config"]=> NULL ["formatOutput"]=> bool(false) ["validateOnParse"]=> bool(false) ["resolveExternals"]=> bool(false) ["preserveWhiteSpace"]=> bool(true) ["recover"]=> bool(false) ["substituteEntities"]=> bool(false) ["nodeName"]=> string(9) "#document" ["nodeValue"]=> NULL ["nodeType"]=> int(9) ["parentNode"]=> NULL ["childNodes"]=> string(22) "(object value omitted)" ["firstChild"]=> NULL ["lastChild"]=> NULL ["previousSibling"]=> NULL ["attributes"]=> NULL ["ownerDocument"]=> NULL ["namespaceURI"]=> NULL ["prefix"]=> string(0) "" ["localName"]=> NULL ["baseURI"]=> NULL ["textContent"]=> string(0) "" }


Ten post edytował Ryrzy 14.03.2014, 11:57:46
Go to the top of the page
+Quote Post
markuz
post 14.03.2014, 11:58:12
Post #4





Grupa: Zarejestrowani
Postów: 1 240
Pomógł: 278
Dołączył: 11.03.2008

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


Dziwne bo u mnie na XAMPP-ie podany przez Ciebie kod działa (po zmianie znacznika z <? na <?php).

Z jakiego serwerz korzystasz?

Ten post edytował markuz 14.03.2014, 11:59:26


--------------------
Go to the top of the page
+Quote Post
nospor
post 14.03.2014, 11:58:31
Post #5





Grupa: Moderatorzy
Postów: 36 440
Pomógł: 6290
Dołączył: 27.12.2004




U mnie Twoj kod dziala.

Pewnie masz na serwerze wyłączone ładowanie plikow z URLi. Musisz ustawic flage
allow_url_fopen


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Ryrzy
post 14.03.2014, 12:03:06
Post #6





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 14.03.2014

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


czyli problem leży po stronie mojego serwera ... ehh a siedzę nad tym od rana i myśle smile.gif ok, dziękuje... podeślę info administracji, zobaczymy co odpowie smile.gif dam znac jak się sprawa potoczyła smile.gif
Go to the top of the page
+Quote Post
nospor
post 14.03.2014, 12:04:18
Post #7





Grupa: Moderatorzy
Postów: 36 440
Pomógł: 6290
Dołączył: 27.12.2004




Wystarczy ze odpalisz
phpinfo();
i bedziemy wiedzili jaką masz flage allow_url_fopen czy on czy off
Powód edycji: [nospor]:


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Ryrzy
post 14.03.2014, 12:06:21
Post #8





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 14.03.2014

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


hmmmm dziwne, bo mam:

Cytat
allow_url_fopen On On
Go to the top of the page
+Quote Post
Ryrzy
post 14.03.2014, 12:13:47
Post #9





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 14.03.2014

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


cURL support enabled
cURL Information 7.28.0
Go to the top of the page
+Quote Post
arpi
post 8.05.2014, 20:30:55
Post #10





Grupa: Zarejestrowani
Postów: 47
Pomógł: 0
Dołączył: 7.01.2011

Ostrzeżenie: (10%)
X----


Mam bardzo podobny problem.
Gdy odczytuje dane z pliku xml wszytsko jest ok.

Plik xml.xml
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <produkty>
  3. <produkt>
  4. <nazwa_tow>sterownik</nazwa_tow>
  5. <ceny>
  6. <cena prog="1">123</cena>
  7. <cena prog="2">125</cena>
  8. </ceny>
  9. </produkt>
  10. </produkty>


skrypt php
  1. <?php
  2.  
  3. $xml = simplexml_load_file("xml.xml");
  4.  
  5. foreach ($xml->produkt as $produkt) {
  6. echo $produkt->nazwa_tow . '<br>';
  7. foreach ($produkt->ceny->cena as $cena) {
  8. echo $cena->getName() . ' ' . $cena['prog'] . ' to: ' . $cena . '';
  9. }
  10. }
  11.  
  12.  
  13. ?>


Problem pojawia się gdy chce odczytać dane z pliku xml generowanego w locie
plik xml.php
  1. <?php
  2. header('Content-type: text/xml; charset=utf-8');
  3. $tresc ='<?xml version="1.0" encoding="utf-8"?>
  4. <produkty>
  5. <produkt>
  6. <nazwa_tow>sterownik</nazwa_tow>
  7. <ceny>
  8. <cena prog="1">123z</cena>
  9. <cena prog="2">125z</cena>
  10. </ceny>
  11. </produkt>
  12. </produkty>';
  13. echo $tresc;
  14. ?>


skrypt php identyczny ze zmienioną ściężką
  1. <?php
  2.  
  3. $xml = simplexml_load_file("xml.php");
  4.  
  5. foreach ($xml->produkt as $produkt) {
  6. echo $produkt->nazwa_tow . '<br>';
  7. foreach ($produkt->ceny->cena as $cena) {
  8. echo $cena->getName() . ' ' . $cena['prog'] . ' to: ' . $cena . '';
  9. }
  10. }
  11.  
  12.  
  13. ?>


Czy takie pliki jakoś inaczej należy odczytywać ? Nie znalazłem niestety informacji nigdzie na ten temat...
w phpinfo mam
allow_url_fopen On On
Go to the top of the page
+Quote Post
trueblue
post 8.05.2014, 21:26:34
Post #11





Grupa: Zarejestrowani
Postów: 6 761
Pomógł: 1822
Dołączył: 11.03.2014

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


Ale jaki masz dokładnie problem?
Występuje jakiś błąd?



Ten post edytował trueblue 8.05.2014, 21:26:47


--------------------
Go to the top of the page
+Quote Post
arpi
post 8.05.2014, 22:01:29
Post #12





Grupa: Zarejestrowani
Postów: 47
Pomógł: 0
Dołączył: 7.01.2011

Ostrzeżenie: (10%)
X----


pojawia się pusta strona w przeglądarce przy odczycie z pliku xml.php

testowałem skrypt na 2 róznych serwerach na których administruje strony, ale nie działa również włączenie błędów
error_reporting( E_ALL | E_STRICT );
ini_set( 'display_errors', 1 );

aby cokolwiek podejrzeć...

Dodam, że wpisanie linku do strony na zewnętrzym serwerze w przeglądarce generuje plik xml poprawnie więc dostęp na pewno jest prawidłowy.
Go to the top of the page
+Quote Post
trueblue
post 9.05.2014, 07:39:19
Post #13





Grupa: Zarejestrowani
Postów: 6 761
Pomógł: 1822
Dołączył: 11.03.2014

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


Spróbuj pobrać najpierw plik file_get_contents i wyświetlić zawartość.
Ścieżka do pliku xml.php jest poprawna?


--------------------
Go to the top of the page
+Quote Post
nospor
post 9.05.2014, 07:41:37
Post #14





Grupa: Moderatorzy
Postów: 36 440
Pomógł: 6290
Dołączył: 27.12.2004




$xml = simplexml_load_file("xml.php");
Przeciez to pobiera zawartosc pliku.php a nie wynik dzialania pliku.php....
Identycznie zachowa sie file_get_contents() - to pobierze zawartosc pliku a nie wynik jego wykonania....


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
trueblue
post 9.05.2014, 08:03:14
Post #15





Grupa: Zarejestrowani
Postów: 6 761
Pomógł: 1822
Dołączył: 11.03.2014

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


Cytat(nospor @ 9.05.2014, 08:41:37 ) *
Przeciez to pobiera zawartosc pliku.php a nie wynik dzialania pliku.php....
Identycznie zachowa sie file_get_contents() - to pobierze zawartosc pliku a nie wynik jego wykonania....

Z zewnętrznego adresu URL?

Ja rozumiem, że kolega chce pobrać z zewnętrznego (pisze, że "wpisanie linku do strony na zewnętrznym serwerze w przeglądarce generuje plik xml").
Stąd moje pytanie o poprawność ścieżki.


--------------------
Go to the top of the page
+Quote Post
nospor
post 9.05.2014, 10:48:00
Post #16





Grupa: Moderatorzy
Postów: 36 440
Pomógł: 6290
Dołączył: 27.12.2004




$xml = simplexml_load_file("xml.php");
Kod ten wskazuje ewidentnie, ze dane pobierane są normalnie z dysku a nie z URL.
Gdyby dane byly pobierane z URL, to wtedy jak najbardziej zostanie zwrocony wynik dzialania pliku php a nie jego zawartosc.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
trueblue
post 9.05.2014, 11:23:42
Post #17





Grupa: Zarejestrowani
Postów: 6 761
Pomógł: 1822
Dołączył: 11.03.2014

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


Dlatego też pytałem czy ścieżka do pliku jest poprawna.


--------------------
Go to the top of the page
+Quote Post
nospor
post 9.05.2014, 11:49:21
Post #18





Grupa: Moderatorzy
Postów: 36 440
Pomógł: 6290
Dołączył: 27.12.2004




No wlasnie... pytasz o sciezke.... powinienies pytac o adres URL smile.gif


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
arpi
post 9.05.2014, 20:49:35
Post #19





Grupa: Zarejestrowani
Postów: 47
Pomógł: 0
Dołączył: 7.01.2011

Ostrzeżenie: (10%)
X----


Dokładnie to jest tak, że tworzę skrypt który pobierze dane z zewnętrznego serwera
przykładowo www.xyz-hurtownia.pl/cennik.php.

Na potrzeby wpisu na forum uprościłem temat i stworzyłem testowe pliki na serwerze na którym mam stronę www.

Rozumiem, że funkcja
simplexml_load_file("xml.php");
nie pobiera wyniku działania dlatego ten błąd.

A jeśli wpiszę w ścieżce adres url to skrypt powinien wykonać się poprawnie ? Trochę to dziwne :/


Czy istnieje w takim razie inne polecenie do pobrania pliku xml generowanego w locie z php (z pliku lokalnego) ?

Ten post edytował arpi 9.05.2014, 20:53:46
Go to the top of the page
+Quote Post
Pyton_000
post 9.05.2014, 22:46:21
Post #20





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

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


Spróbuj tego
  1. $file = file_get_contents('/path/to/file.php');
  2. $xhtml = eval("?>$file");
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: 28.03.2024 - 21:09