이 동작은 실제로 AMFPHP 서비스 브라우저 (버그)에 나타나므로 number 선도 문자열을 int로 변환하는 AMFPHP로 잘못 인식하기 쉽습니다. 그러나 문제는 보내는 코드에 있습니다. 예를 들어 제대로 JSON의 게이트웨이를 통해 urlencode되고 문자열을 작품 전송 (목적 C 코드) : passMD5이 선행 숫자를 가질 수있다
NSString *theUrl = [[NSString alloc] initWithFormat:@"%@/modules/amfphp/amfphp/json.php/MysqlRemoting.checkAuth/%@/%@/1", kServerBaseUrl, userName, passMD5];
NSString *encodedUrl = [theUrl stringByAddingPercentEscapesUsingEncoding: NSASCIIStringEncoding];
. 그러나 서비스 브라우저에서 checkAuth 메소드에 적절한 값을 입력하면 오류가 발생합니다. 당신이 인수에 문자열을 기대한다면
[편집]
$value = urldecode($value);
if($value != "") {
if($value[0] != '[' && $value[0] != '{' && $value != "null" && $value != "false" && $value != "true") {
$hasAlpha = false;
//check to see if it is a number
$sl = strlen($value);
for ($i = 0; $i < $sl; $i++) {
$char1 = ord($value[$i]);
if($char1 >= 0x30 && $char1 <= 0x39) {
//Then this is a number
} else { //Else leave value as is */
$hasAlpha = true;
}
}
if (!$hasAlpha) $value = json_decode($value, true);
}
else
{
$value = json_decode($value, true);
}
}
아주 간단 해 보입니다. 메소드를 호출하는 코드와 결과를 인쇄하는 코드를 보여주고 싶을 것입니다. –