WN

WN (https://www.wn.se/forum/index.php)
-   Serversidans teknologier (https://www.wn.se/forum/forumdisplay.php?f=4)
-   -   skicka XML fill genom php? (https://www.wn.se/forum/showthread.php?t=1048746)

ehsanpo 2011-06-20 11:08

skicka XML fill genom php?
 
hej!
hur kan jag skicka ett färdigt XML till spec URL?
alltså jag har ett form som ska skicka en xml fil till en url varje gång man skickar ett form... hur gör jag det?

OBS! xml filen som ska skickas är alltid samma så jag behöver inte skapa ny xml fil varje gång..

Anders Karlsson 2011-06-20 20:36

Ta en titt på curl, det kan nog vara behändigt om du vill skicka en fil till en http server.

jonny 2011-06-21 14:20

låter lite som någon SOAP-lösning, finns säkert många exempel...

pelmered 2011-06-21 15:23

Hur vill du att den ska skicka filen till URL:en?

Med cURL kan skicka POST-request till en URL som innehåller en fil precis på samma sätt som om man laddar upp en fil i ett formulär till den URL:en.

Här har du ett väldigt bra och enkelt exempel på hur man gör: http://dtbaker.com.au/random-bits/up...rl-in-php.html

Annars är det ju förmodligen enklare att filen laddas ned från server via en speciell länk som pekar på XML-filen.

Citat:

Ursprungligen postat av jonny (Inlägg 20409256)
låter lite som någon SOAP-lösning, finns säkert många exempel...

I SOAP är det ju klienten som initierar och begär informationen. Det verkar inte vara vad han vill.

ehsanpo 2011-06-22 13:02

Tack för alla svar!
Ja det fungerade bra med cURL, problemet är löst nu,

Kod:

$url = "http://minurl.html";
$xml = <<<EOF
<?xml version="1.0" encoding="UTF-8"?>
...
EOF;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $xml);
curl_exec($ch);
curl_close($ch);

?>

MEN! hur får jag en resultat tbx?
jag vet att jag får svar med olika xml koder som betyder nåt och jag vill skriva olika meddelande till varje kod?

men jag fattar inte hur jag får tbx svaret ? alltså
if ($serversvar == $error10) {
echo("<p>Meddelande leverans misslyckades...</p>");
}
men jag vet inte vad $serversvar ska förklaras?

Anders Karlsson 2011-06-22 13:16

Jag kopierade lite kod där jag behandlar svaret. Kan vara i html, xml eller annat...

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,"https://....");

curl_setopt ($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLINFO_HEADER_OUT, true);

$result=curl_exec ($ch);
$response = curl_getinfo( $ch );
$request_header_info = curl_getinfo($ch, CURLINFO_HEADER_OUT);

// $result innehåller svaret...

ehsanpo 2011-06-22 13:54

ok perfekt! tack så mkt!

Anders Karlsson 2011-06-22 14:14

Det ska säkert funka, hör av dig ifall fler frågor dyker upp.


Alla tider är GMT +2. Klockan är nu 10:35.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson