在我的ios应用程序代码中,我在HTTPBody中传递了一个NSDictionary 所以我的php可以检查用户是否存在于数据库中。
-(void)checkUser
{
NSDictionary *userDict = [NSDictionary dictionaryWithObjectsAndKeys:
sessionId, @"sessionId",
sessionName, @"sessionName",
nil];
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:userDict
options:NSJSONWritingPrettyPrinted error:nil];
NSString *jsonString = [[NSString alloc] initWithData:jsonData
encoding:NSUTF8StringEncoding];
// initialize and open the stream
NSURL *url = [NSURL URLWithString:@"http://www.mysite.com/userValidate.php"];
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:url];
[request setHTTPMethod:@"POST"];
[request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
[request setHTTPBody:[jsonString dataUsingEncoding:NSUTF8StringEncoding]];
[NSURLConnection connectionWithRequest:request delegate:self];
}
在PHP文件中使用
$raw = file_get_contents('php://input');
然后回来
post = "{\n \"sessionId\" : \"132156\",\n \"sessionName\" : \"My Name\"\n}";
我按照这篇文章https://stackoverflow.com/a/5078426/1333294将此方法添加到我的PHP文件
function getTestPostData()
{
$post_data = explode( "\n", file_get_contents('php://input') );
$result = array();
foreach( $post_data as $post_datum ) {
$pair = explode(":", $post_datum );
$result[urldecode($pair[0])] = urldecode($pair[1]);
}
return $result;
}
现在我正在
explode = {
" \"sessionId\" " = " \"132156\",";
" \"sessionName\" " = " \"My Name\"";
"{" = "";
"}" = "";
};
如何进一步'清理'阵列,以便我的arry就像
"sessionId" = "132156";
"sessionName" = "My Name";
由于
答案 0 :(得分:0)
它看起来像一个json数组。尝试将字符串输入json_decode()
function getTestPostData()
{
$post_data = file_get_contents('php://input');
$result = json_decode( $post_data, true );
return $result;
}
这可以进一步减少,但为了清楚起见,请使用原始变量。
编辑:添加第二个参数,以返回数组与对象