Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> simplexml
buczo
post 28.02.2006, 13:27:31
Post #1





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 28.02.2006

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


cześć,
mam problem z simplexml'em po prostu nie chcę chodzić mi na jednej maszynie php 5.1.2 apache 2.2.0
tutaj stronka:
  1. <?php
  2. error_reporting(E_ALL ^ E_NOTICE);
  3. ini_set('display_errors','on');
  4. $cos=simplexml_load_file('plik.xml');
  5. echo "Wyświetl :\n <BR>\n";
  6. var_dump($cos);
  7. ?>

a tu plik.xml
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  3. <soapenv:Body>
  4. <ns1:getUserInfoResponse soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns1="http://alepo.netia.pl">
  5. <getUserInfoReturn href="#id0"/>
  6. </ns1:getUserInfoResponse>
  7. <multiRef id="id0" soapenc:root="0" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="ns2:UserInfoBean" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns2="http://jakis.tam.adres.pl">
  8. <credit xsi:type="xsd:double">0.280007</credit>
  9. <email xsi:type="xsd:string">mail@mail.pl</email>
  10. <expTimeStamp xsi:type="xsd:long">1155406831</expTimeStamp>
  11. <extSystemId xsi:type="xsd:string">nazwa</extSystemId>
  12. <lastTransId xsi:type="xsd:long" xsi:nil="true"/>
  13. <pstnNumber xsi:type="xsd:string">4469800</pstnNumber>
  14. <pstnZone xsi:type="xsd:string">77</pstnZone>
  15. <userId xsi:type="xsd:string">2100001</userId>
  16. </multiRef>
  17. </soapenv:Body>
  18. </soapenv:Envelope>

problem polega na tym, że na innych serwerach chodzi u mnie niestety nie.. i nie wiem co jest przyczyną php jest skompilowany jak najbardziej z wszystkimi potrzebnymi opcjami do xml'a.. brak mi pomysłów, skrypt bije takim errorem:

Warning: simplexml_load_file() [function.simplexml-load-file]: I/O warning : failed to load external entity "<?xml version="1.0" encoding="UTF-8"?> <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <soapenv:Body> <ns1:getUserInfoResponse soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns1="http://jakis.tam.adres.pl"> <getUserInfoReturn href="#id0"/> </ns1:getUserInfoResponse> <multiRef id="id0" soapenc:root="0" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="ns2:UserInfoBean" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns2="http://jakis.tam.adres.pl""> <credit xsi:type="xsd:do in /home/users/wwwtest/www/test.php on line 5
Wyświetl :
bool(false)

dzięki z góry za pomoc,
pozdrawiam
Ł.
Go to the top of the page
+Quote Post
splatch
post 28.02.2006, 18:40:17
Post #2





Grupa: Zarejestrowani
Postów: 487
Pomógł: 7
Dołączył: 7.01.2004
Skąd: Warszawa

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


Nie jestem pewien, ale być może SimpleXML traktuje <getUserInfoReturn href="#id0"/> jako zdefiniowany symbol..


--------------------
Łukasz Dywicki
Independent Java and open source software consultant.
Blog - Java, OSGi, integracja oprogramowania..
Go to the top of the page
+Quote Post
dr_bonzo
post 28.02.2006, 18:56:52
Post #3





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

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


Moge tylko zgadywac:
"I/O warning : failed to load external entity"
Wystapil blad przy odczycie zewnetrznego "entity" -- skoro zdarza ci sie to zawsze to byc moze php nie moze otwierac zewnetrznych plikow -- allow_url_fopen masz na off -- sprawdz.


--------------------
Nie lubię jednorożców.
Go to the top of the page
+Quote Post
buczo
post 1.03.2006, 14:11:47
Post #4





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 28.02.2006

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


hm
allow_url_fopen = On
to mam włączone włąśnie
Go to the top of the page
+Quote Post
splatch
post 1.03.2006, 15:09:56
Post #5





Grupa: Zarejestrowani
Postów: 487
Pomógł: 7
Dołączył: 7.01.2004
Skąd: Warszawa

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


To nie mógł być allow_url_fopen, ponieważ plik był otwierany lokalnie - plik.xml, a tego w jaki sposób rozszeżenia pobierają dane z sieci (min. DOM XML, SimpleXML) nie można regulować. Ta dyrektywa jest wykorzystywana w przypadku file, fopen, file_get_contents i zbliżonych.
Po komunikacie błędu widać, że funkcja otworzyła plik, ale nie pasuje jej coś w strukturze XML. Wskazuje na linie gdzie jest <getUserInfoReturn href="#id0"/>, więc może sprawdź jak się zachowa bez niej. Sprawdź również kodowanie - czy się zgadza z deklarowanym UTF-8.
Jeśli chcesz korzystać z SOAPa możesz z powodzeniem skorzystać z gotowych pakietów. Jest w końcu Nu SOAP, jest również rozszeżenie SOAP dla PHP5 które dostarcza klient i "serwer".


--------------------
Łukasz Dywicki
Independent Java and open source software consultant.
Blog - Java, OSGi, integracja oprogramowania..
Go to the top of the page
+Quote Post
buczo
post 1.03.2006, 17:03:25
Post #6





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 28.02.2006

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


Okazuje się, że na php 5.0.5 chodzi poprawnie póki co zrobiłem downgrade wersji z 5.1.2 i zgłosiłem buga na bugs.php.net jak się wyjaśni dam znać.
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: 23.04.2024 - 15:19