Als Perl programmeur ben ik niet zo thuis in PHP graag jullie hulp voor het volgende.

Als Curl antwoord krijg ik volgende array retour. Hoe haal ik hier variabelen uir als bijvoorbeeld: $orderid, en bijv $text?

Array
(
[status] =>
[data] => Array
(
[personid] => KNPHA-00000001
[orderid] => ANPHA-00000001
[o_orderid_external] => 114166
[order_state_code] => received
[order_state_name] => Auftrag eingegangen
)

[msg] => Array
(
[0] => Array
(
[type] => WARNING
[text] => Order "114166" was already injected and will be skipped.
)

)

)
Afhankelijk van in welke variable het is opgeslagen, is dat:
$content['data']['orderid'] voor het OrderID

Met logisch kijken zal je text ook wel op kunnen halen. ;-)
dit lijkt de output van print_r in php.
dat is een vrij lompe manier van data export.

Kan de server die je aanspreekt niet bijvoorbeeld json terug geven? Mogelijk door een header
ACCEPT: application/json

mee te geven?
Dat is een formaat dat je vast ook in Perl gemakkelijk om kunt zetten in een variabele, zodat je niet zelf in de tekst hoeft te gaan spitten.
Na $str = json_encode($r);

Nu is de output:
{
"status": false,
"data": {
"personid": "KNPHA-00000001",
"orderid": "ANPHA-00000001",
"o_orderid_external": "114166",
"order_state_code": "received",
"order_state_name": "Auftrag eingegangen"
},
"msg": [
{
"type": "WARNING",
"text": "Order \"114166\" was already injected and will be skipped."
}
]
}
eh.

probeer je nu een output van PHP in Perl te verwerken, of wat ben je aan het doen?
Je hebt nu een JSON-string gemaakt van je array-boom.
maar de vraag is wat je precies wilt? Je lijkt wel af te wijken naar wat je volgens je vraagstelling wilt bereiken?
Die json kan ik wel makkelijker parsen in perl dat gaat lukken. Die json_encode is wat ik nodig had...

Bedankt!

Reageren