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/client/auth_model_check2.jsp?esn=358635053320769
Skrypt próbuję zrobić na bazie http://www.w3schools.com/xml/xml_to_html.asp lub http://wwwgo.pl/article/9/phpquery_-_szybkie_parsowanie_dokumentow_na_podobienstwo_jquery
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
<?php $objDOM = new DOMDocument(); $objDOM->load("http://csmg.lgmobile.com:9002/csmg/b2c/client/auth_model_check2.jsp?esn=358635053320769"); http://www.php.net/var_dump($objDOM); ?>
mam to tak:
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 ...
<? $objDOM = new DOMDocument(); $objDOM->load("http://csmg.lgmobile.com:9002/csmg/b2c/client/auth_model_check2.jsp?esn=358635053320769"); $dane = $objDOM->getElementsByTagName("auth_model_check"); foreach( $dane as $value ) { $model = $value->getElementsByTagName("model"); $models = $model->item(0)->nodeValue; $sw_version = $value->getElementsByTagName("sw_version"); $sw_versions = $sw_version->item(0)->nodeValue; http://www.php.net/echo "$models $sw_versions"; } ?>
Dziwne bo u mnie na XAMPP-ie podany przez Ciebie kod działa (po zmianie znacznika z <? na <?php).
Z jakiego serwerz korzystasz?
U mnie Twoj kod dziala.
Pewnie masz na serwerze wyłączone ładowanie plikow z URLi. Musisz ustawic flage
allow_url_fopen
czyli problem leży po stronie mojego serwera ... ehh a siedzę nad tym od rana i myśle ok, dziękuje... podeślę info administracji, zobaczymy co odpowie dam znac jak się sprawa potoczyła
Wystarczy ze odpalisz
phpinfo();
i bedziemy wiedzili jaką masz flage allow_url_fopen czy on czy off
hmmmm dziwne, bo mam:
cURL support enabled
cURL Information 7.28.0
Mam bardzo podobny problem.
Gdy odczytuje dane z pliku xml wszytsko jest ok.
Plik xml.xml
<?xml version="1.0" encoding="utf-8"?> <produkty> <produkt> <nazwa_tow>sterownik</nazwa_tow> <ceny> <cena prog="1">123</cena> <cena prog="2">125</cena> </ceny> </produkt> </produkty>
<?php $xml = simplexml_load_file("xml.xml"); foreach ($xml->produkt as $produkt) { http://www.php.net/echo $produkt->nazwa_tow . '<br>'; foreach ($produkt->ceny->cena as $cena) { http://www.php.net/echo $cena->getName() . ' ' . $cena['prog'] . ' to: ' . $cena . ''; } } ?>
<?php http://www.php.net/header('Content-type: text/xml; charset=utf-8'); $tresc ='<?xml version="1.0" encoding="utf-8"?> <produkty> <produkt> <nazwa_tow>sterownik</nazwa_tow> <ceny> <cena prog="1">123z</cena> <cena prog="2">125z</cena> </ceny> </produkt> </produkty>'; http://www.php.net/echo $tresc; ?>
<?php $xml = simplexml_load_file("xml.php"); foreach ($xml->produkt as $produkt) { http://www.php.net/echo $produkt->nazwa_tow . '<br>'; foreach ($produkt->ceny->cena as $cena) { http://www.php.net/echo $cena->getName() . ' ' . $cena['prog'] . ' to: ' . $cena . ''; } } ?>
Ale jaki masz dokładnie problem?
Występuje jakiś błąd?
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.
Spróbuj pobrać najpierw plik file_get_contents i wyświetlić zawartość.
Ścieżka do pliku xml.php jest poprawna?
$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....
$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.
Dlatego też pytałem czy ścieżka do pliku jest poprawna.
No wlasnie... pytasz o sciezke.... powinienies pytac o adres URL
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) ?
Spróbuj tego
$file = http://www.php.net/file_get_contents('/path/to/file.php'); $xhtml = http://www.php.net/eval("?>$file");
Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)