Avatar billede xcover Nybegynder
26. april 2010 - 14:52 Der er 2 kommentarer

Send XML og udskriv svar

Hejsa,

Jeg har noget XML som jeg skal sende til en remote server - og derefter udskrive de svar jeg får tilbage.

Jeg kan bare ikke helt få det til at virke.

Håber i kan hjælpe, eller evt. give mig noget ny kode at arbejde med ?

<?php
function w_connect($xmlstr){

$data_to_send = $xmlstr;
$connection = fsockopen("tls://url.com", 774);
stream_set_blocking($connection, 0);
fwrite($connection, $data_to_send);

$part = fread($connection, 8192);
$output.=$part;
}
return $output;
}

$xmlstr = <<<XML
<?xml version="1.0" ?>
<command>
<log-in>
<authcode>xxxx</authcode>
</log-in>
</command>

<?xml version="1.0"?>
<command>
<list xmlns="http://www.testurl.com"/>
</command>
XML;

$output = w_connect($xmlstr);

echo "<b>XML Sent:</b><br />" . htmlentities($xmlstr) . "<br /><br />";
echo "<b>XML Received:</b><br /> " . htmlentities($output) . "<br /><br />";
?>
Avatar billede showsource Seniormester
26. april 2010 - 15:36 #1
Jeg aner intet om fsockopen, men det er vel ikke fordi shorttags er on i php.ini ?

Og min viden om xml er på str. med min bankkonto, men du skal vel ikke ha' to gange <?xml version....... ?
Avatar billede xcover Nybegynder
26. april 2010 - 15:55 #2
Jeg er selv helt ny i PHP - jeg ved ikke lige helt hvordan det data skal sendes, men jeg skal sende 2 xml dokumenter. Først et login dokument, og derefter skal der udføres noget i et andet XML dokument.

Men altså jeg har også denne kode, som virker helt fint, resultatet jeg får tilbage er success login. Men så efter login skal det næste XML dokument sendes, jeg aner bare ikke hvordan.

Desuden kunne jeg godt tænke mig at komme af med den while(true) inde i funktionen - så istedet for at den løber det igennem, bare udskriver ALT der kommer retur, kan nogle hjælpe med det ?

<?php
function whapi_connect($xmlstr){

$data_to_send = $xmlstr;
$connection = fsockopen("tls://url.com", 774);
stream_set_blocking($connection, 0);
fwrite($connection, $data_to_send);
$output = "";
while(true) {
$part = fread($connection, 8192);
$output.=$part;
if(preg_match('/<\/whapi>/', $output)) break;
}
return $output;
}

$xmlstr = <<<XML
<?xml version="1.0" ?>
<command>
<log-in>
<authcode>xxxxxxx</authcode>
</log-in>
</command>
XML;

$output = whapi_connect($xmlstr);

echo "<b>XML Sent:</b><br />" . htmlentities($xmlstr) . "<br /><br />";
echo "<b>XML Received:</b><br /> " . htmlentities($output) . "<br /><br />";
?>
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester