2017-07-05 7 views
0

私はいくつかのSMS APIを使用しようとしました。メッセージIDを取得する必要があります。まず第一に、私のAPIコードです。json値をPHP変数に変更する問題

$url = 'https://rest.nexmo.com/sms/json?' . http_build_query(
    [ 
     'api_key' => 'xxx', 
     'api_secret' => 'xxx', 
     'to' => 'xxx', 
     'from' => 'xxx', 
     'text' => 'xxx' 
    ] 
); 
     $ch = curl_init($url); 
     curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
     $response = curl_exec($ch); 

このコードを使用すると、SMSを送信して応答を返すように機能しています。そしてここにjsonレスポンスがあります。

{ "message-count": "1", "messages": [{ "to": "905075214049", "message-id": "0C000000440A086C", "status": "0", "remaining-balance": "1.52250000", "message-price": "0.01910000", "network": "28603" }] } 

私はprint_r関数を使用してjsonデータの構造体を表示します。そしてここにそれがあります。

stdClass Object 
(
    [message-count] => 1 
    [messages] => Array 
     (
      [0] => stdClass Object 
       (
        [to] => xxx 
        [message-id] => 0C000000440A086C 
        [status] => 0 
        [remaining-balance] => 1.52250000 
        [message-price] => 0.01910000 
        [network] => 28603 
       ) 

     ) 

) 

このコードを使用して、私のPHP値に "message-id"を取得します。

$json_decode = json_decode($response); 
$sonuc->messages[0]->message-id; 

私の問題は次のとおりです。私はこのjsonからネットワークセクションを取得しようとすると動作します。しかし、私が "メッセージID"セクションを取得しようとすると、画面上の0しか返されません。私は本当に完全なメッセージIDを取得する方法を知りません。助けてください。

答えて

3

- charはプロパティまたは変数名として使用できません。このプロパティを取得したい場合は、次のようにします。

$sonuc->messages[0]->{"message-id"} 
+0

これは機能しました。あなたの返信と助けてくれてありがとう。 –

0

間違った変数名を使用しています。お試しください

$sonuc = json_decode($response); 
echo $sonuc->messages[0]->message-id; 
+0

これは私の間違いです。結果は同じです。私はメッセージIDを取得しようとすると、画面に0が表示されます。 –

関連する問題