De XML haal ik via PHP zo op:
$arr = file_get_contents("php://input");
Voorbeeld XML welke naar mijn PHP wordt gestuurd:
<?xml version="1.0" encoding="UTF-8"?>
<xsi:Event xsi1:type="xsi:SubscriptionEvent" xmlns:xsi="***" xmlns:xsi1="http://www.w3.org/2001/XMLSchema-instance">
<xsi:eventID>2e4d1d4f-be02-4023-a73e-***</xsi:eventID>
<xsi:sequenceNumber>150</xsi:sequenceNumber>
<xsi:userId>call_logging@***.nl</xsi:userId>
<xsi:externalApplicationId>xml1</xsi:externalApplicationId>
<xsi:subscriptionId>55b13324-aa66-4231-a2a8-****</xsi:subscriptionId>
<xsi:httpContact>
<xsi:uri>http://***/admin/listener.php</xsi:uri>
</xsi:httpContact>
<xsi:targetId>U_245@***.nl</xsi:targetId>
</xsi:Event>
En via een aantal preg_match zaken haal ik de informatie eruit:
preg_match('/<xsi:targetId>(.*?)<\/xsi:targetId>/s', $arr, $targetid); // GET Target ID
preg_match('/<xsi:subscriptionId>(.*?)<\/xsi:subscriptionId>/s', $arr, $subscriptionid); // GET Subscription ID
preg_match_all('/<xsi:callId>(.*?)<\/xsi:callId>/s', $arr, $callId); // GET callId
Nu werkt de preg_match targetId niet. Variable $targetid[1] bevat 'xml1' in plaats van 'U_245@***.nl'. Hij pakt dus vanuit de XML de tag xsi:externalApplicationId en plaats van xsi:targetId...
Hoe kan dat nou???????