Hi,

Ik krijg een statusrapport van de SMSjes die ik verzend in de volgende vorm:

<deliveryreport>
<message id="msgID" sentdate="yyyyyy" donedate="xxxxx"
status="zzzzzz" />
</deliveryreport>

Hoe kan ik het opslaan in de database?
Ik bedoel: Ik weet hoe ik het moet opslaan. Maar hoe krijg ik bijvoorbeeld $sentdate is yyyyyyy?

Bedankt!
Nathaniel.
Ja weet ik.
Maar dan moet je als input een xml bestand hebben. Maar die heb ik niet.
<?php
$xml = simplexml_load_string($bericht);

var_dump($xml);
?>
Hier

<?php
$string = <<<XML
<deliveryreport>
<message id="msgID" sentdate="yyyyyy" donedate="xxxxx"
status="zzzzzz" />
</deliveryreport>
XML;

$xml = simplexml_load_string($string);
foreach($xml->message[0]->attributes() as $beschrijving => $naam) {
    echo $beschrijving,'="',$naam,"\"\n";
}
?>


Maar hoe krijg ik $sentdate is yyyyyyy bijvoorbeeld?
Een kwestie van even goed in de handleiding kijken hoe je met het simplexml object werkt:
<?php
$xml_string = '<deliveryreport>
<message id="msgID" sentdate="yyyyyy" donedate="xxxxx"
status="zzzzzz" />
</deliveryreport>';

$xml = simplexml_load_string($xml_string);

$sentdate = $xml->message['sentdate'];
echo $sentdate;
?>
Bovenstaande string is géén XML, de XML-declaratie ontbreekt. Wordt het zo aangeleverd of is dit maar een stukje uit het totale bericht?
Nee, het wordt zo aangeleverd.
De script van Blanche werkt perfect.
Maar het wordt aangeleverd in meervoud:

<deliveryreport>
<message id="msgID1" sentdate="yyyyyy" donedate="xxxxx" status="zzzzzz" />
<message id="msgID2" sentdate="yyyyyy" donedate="xxxxx" status="zzzzzz" />
<message id="msgID3" sentdate="yyyyyy" donedate="xxxxx"
status="zzzzzz" />
<message id="msgID4" sentdate="yyyyyy" donedate="xxxxx"
status="zzzzzz" />
</deliveryreport>


Ik moet dus een foreach hebben... Hoe moet ik dat toevoegen aan de code van Blanche?
<?php
$xml_string = '<deliveryreport>
<message id="msgID1" sentdate="yyyyyy" donedate="xxxxx" status="zzzzzz" />
<message id="msgID2" sentdate="yyyyyy" donedate="xxxxx" status="zzzzzz" />
<message id="msgID3" sentdate="yyyyyy" donedate="xxxxx"
status="zzzzzz" />
<message id="msgID4" sentdate="yyyyyy" donedate="xxxxx"
status="zzzzzz" />
</deliveryreport>';

$xml = simplexml_load_string($xml_string);

foreach($xml->message as $message)
{
echo $message['sentdate'].'<br />';
}
?>
Dan zou je het dus op deze manier aanpakken.
Geweldig! Echt bedankt ;)

Nu kom ik bij het volgende probleem:
Hun server laadt mijn pagina met het voorgaande code:

<deliveryreport>
<message id="msgID1" sentdate="yyyyyy" donedate="xxxxx" status="zzzzzz" />
<message id="msgID2" sentdate="yyyyyy" donedate="xxxxx" status="zzzzzz" />
<message id="msgID3" sentdate="yyyyyy" donedate="xxxxx"
status="zzzzzz" />
<message id="msgID4" sentdate="yyyyyy" donedate="xxxxx"
status="zzzzzz" />
</deliveryreport>


Ik kan dus geen $_GET doen omdat het code niet in de url zit.
Wat moet ik dan doen?

Reageren