WeChat を開発する場合、WeChat POST メッセージは XML データ パケットであるため、SimpleXMLElement オブジェクトを通じて取得したデータは操作が簡単ではなく、通常の配列に変換する必要があります。
インターネットで多くの方法を見つけましたが、json_decodeとjson_encodeを介して変換できることがわかったので、みんなに共有しました。
$postStr = '<xml> <ToUserName><![CDATA[toUser]]></ToUserName> <FromUserName><![CDATA[fromUser]]></FromUserName> <CreateTime>1348831860</CreateTime> <MsgType><![CDATA[text]]></MsgType> <Content><![CDATA[this is a test]]></Content> <MsgId>1234567890123456</MsgId> </xml>';$postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);$jsonStr = json_encode($postObj);$jsonArray = json_decode($jsonStr,true);print_r($jsonArray);
出力結果は次のようになります:
Array( [ToUserName] => toUser [FromUserName] => fromUser [CreateTime] => 1348831860 [MsgType] => text [Content] => this is a test [MsgId] => 1234567890123456)
これにより、操作が非常に簡単になります。