我正在使用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如何传递信息以及如何正确访问它。
非常感谢任何提示。
答案 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传递的信息。