Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][XML]Jak to sformatować?
Forum PHP.pl > Forum > Przedszkole
imashjan82
  1. <interface version="1.0">
  2. <response>
  3. <domain>
  4. <name>gh.pl</name>
  5. <available>false</available>
  6. <reason>
  7. <code>INT_0200</code>
  8. <message>Domena aktywna</message>
  9. </reason>
  10. </domain>
  11. </response>
  12. </interface>

jak to sformatowac zeby wyniki były np: domena aktywna i tyle bez wyswietlania xml-a
darko
  1. $txt = '
  2. <interface version="1.0">
  3. <response>
  4. <domain>
  5. <name>gh.pl</name>
  6. <available>false</available>
  7. <reason>
  8. <code>INT_0200</code>
  9. <message>Domena aktywna</message>
  10. </reason>
  11. </domain>
  12. </response>
  13. </interface>
  14. ';
  15.  
  16. $xml = simplexml_load_string($txt);
  17. echo $xml->response->domain->reason->message;

Najlepiej zrób print_r($xml); - zobacz, co wyświetli. Możesz śmiało jeździć po tym foreach'ami i wyciągać do tablic odpowiednie dane.
imashjan82
  1. $sCommand = '<?xml version="1.0" encoding="ISO-8859-2"?>
  2. <interface version="1.0">
  3. <command>
  4. <check>
  5. <domain>
  6. <name>' .$domena. '</name>
  7. </domain>
  8. </check>
  9. </command>
  10. </interface>';
  11.  
  12. $rSession = curl_init("**********");
  13. curl_setopt($rSession, CURLOPT_HTTPHEADER, array(*******));
  14. curl_setopt($rSession, CURLOPT_RETURNTRANSFER, 1);
  15. curl_setopt($rSession, CURLOPT_POST, 2);
  16. curl_setopt($rSession, CURLOPT_POSTFIELDS, $sCommand);
  17. $sResult = curl_exec($rSession);
  18.  
  19. if (curl_errno($rSession)) {
  20. print_r('Error ' . curl_errno($rSession) . ': ' . curl_error($rSession));
  21. } else {
  22. print_r(htmlspecialchars($sResult));
  23. }


to daje taką odpowiedz jak wyżej
i chcę aby było domena aktywna źle zadałem pytanie
darko
Jeśli chcesz sklecić urla z tych danych, to możesz je obrobić tak, jak Ci wcześniej podałem. Nie widzę żadnego problemu.
imashjan82
Pierwszy kod który się w tym poscie si epojawil to wynik tego zapytania które jest poniżej.

POnizej przedstawiam zmieniony kod, który wyświetla tylko to, ale nie wyswietla czy domena jest zajeta czy wolna.
  1. <?
  2. $sCommand = '<?xml version="1.0" encoding="ISO-8859-2"?>
  3. <interface version="1.0">
  4. <command>
  5. <check>
  6. <domain>
  7. <name>' .$domena. '</name>
  8. </domain>
  9. </check>
  10. </command>
  11. </interface>';
  12.  
  13. $rSession = curl_init("*************");
  14. curl_setopt($rSession, CURLOPT_HTTPHEADER, array(***************));
  15. curl_setopt($rSession, CURLOPT_RETURNTRANSFER, 1);
  16. curl_setopt($rSession, CURLOPT_POST, 2);
  17. curl_setopt($rSession, CURLOPT_POSTFIELDS, $sCommand);
  18. $sResult = curl_exec($rSession);
  19.  
  20. $xml = simplexml_load_string($sCommand);
  21. print_r ($xml->response->domain->reason->message);
  22.  
  23. curl_close($rSession);
  24. ?>


a print_r($sCommand);

dał taki wynik:

SimpleXMLElement Object
(
[@attributes] => Array
(
[version] => 1.0
)

[command] => SimpleXMLElement Object
(
[check] => SimpleXMLElement Object
(
[domain] => SimpleXMLElement Object
(
[name] => domena.pl
)

)

)

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