PHP - 访问Matlab通过webwrite函数发送的json数据

时间:2016-04-03 21:21:51

标签: php json matlab

我正在使用Matlab R2015b中的 webwrite 函数将一些结构化信息作为json媒体类型传递到我服务器上的PHP脚本中。 matlab代码运行没有错误,但我不知道如何访问PHP脚本中的信息来使用它,首先检查数据是否正确传输。

以下是我的Matlab代码的一个简单示例:

override func collectionView(collectionView: JSQMessagesCollectionView!, messageBubbleImageDataForItemAtIndexPath indexPath: NSIndexPath!) -> JSQMessageBubbleImageDataSource! {
    let data = messages[indexPath.row]

    switch(data.senderId) {
    case self.senderId:
        return self.outgoingBubble
    default:
        if(messageStatus == "Some Unique Value") {
          return JSQMessagesBubbleImageFactory().incomingMessagesBubbleImageWithColor(UIColor(red: 119/255, green: 204/255, blue: 250/255, alpha: 1.0))
        } 
        return self.incomingBubble
      }
    }

现在我在PHP中尝试了几件事,其中大多数都包含了一些php命令json_decode的用法:

data = struct('userId', 20 ,'Password', 10);    
url = 'http://example.info/php/test.php';

options = weboptions('MediaType', 'application/json');
response = webwrite(url, data, options);

但是,我不知道Matlab如何传递信息以及如何正确访问它。

非常感谢任何提示。

1 个答案:

答案 0 :(得分:0)

我找到了这个问题的解决方案,想要分享它以防其他人遇到同样的问题:

首先,必须在Matlab代码中进行微调,以包含内容类型json以及

data = struct('userId', 20 ,'Password', 10);    
url = 'http://example.info/php/test.php';

options = weboptions('MediaType','application/json','ContentType','json');
response = webwrite(url, data, options);

然后,php代码如下所示:

$data = json_decode(file_get_contents('php://input'));

if($data !== FALSE) {
    echo json_encode($data); //echo same data as check
}
else {
    echo 'Error parsing data';
}

关键是使用 ' php:// input' 来解决Matlab传递的信息。