PHP에서 변수를 신속하게 가져 오거나 변수 값을 가져 오십시오. 어떻게해야합니까?PHP 변수를 신속하게 가져올 수있는 방법
$name = "William";
이 문자열을 어떻게 Swift 스크립트로 가져올 수 있습니까? 누구든지 나를 도울 수 있습니까?
JSON과 POST 또는 뭔가 다른 것을 알고 있습니다. 그렇지 않으면 완전히 잃어 버렸습니다.
PHP에서 변수를 신속하게 가져 오거나 변수 값을 가져 오십시오. 어떻게해야합니까?PHP 변수를 신속하게 가져올 수있는 방법
$name = "William";
이 문자열을 어떻게 Swift 스크립트로 가져올 수 있습니까? 누구든지 나를 도울 수 있습니까?
JSON과 POST 또는 뭔가 다른 것을 알고 있습니다. 그렇지 않으면 완전히 잃어 버렸습니다.
저는 스위프트 프로그래머가 아닌 iOS/PHP 개발자로서 대답하고 있습니다.
PHP 스크립트를 호스팅하는 웹 서버에 HTTP 요청을 보내면 지정된 매개 변수가있는 웹 페이지의 내용이 반환됩니다.
예를 들어 GET
HTTP 요청을 다음 PHP 스크립트로 보낸 경우 응답은 사용하는 방법에 따라 NSData
또는 NSString
의 형식으로 "William"이됩니다. 파라미터 GET http://myserver.com/some_script.php?name=William
함께
<?php
$name = "William";
echo $name;
?>
: 사물의 신속한 측으로서
<?php
$name = $_GET['name']; // takes the ?name=William parameter from the URL
echo $name; // William
?>
는 요청을 전송하는 수많은 방법 중 하나를 나타내고, 여기에 완전하게 유효한 응답이 : https://stackoverflow.com/a/24016254/556479.
PHP에서 iOS 장치로 데이터를 가져 오려면 PHP 코드에서 JSON으로 보내도록하는 것이 좋습니다. JSON은 클라이언트 응용 프로그램이 구문 분석하기 쉽습니다 (특히 웹 서비스 응답이 더 복잡해짐에 따라). 그리고 유효한 응답과 일부 일반 서버 오류를 쉽게 구별 할 수 있습니다.
가<?php
$name = "William";
$results = Array("name" => $name);
header("Content-Type: application/json");
echo json_encode($results);
?>
이 (a) 것을 규정하는 Content-Type
헤더를 지정
$results
변수 아래) 다음은
json_encode
전화 I은 일반적으로 "연관 배열"를 생성, PHP에서 JSON 보내려면 응답은
application/json
이 될 것입니다; 그리고 나서 (b)는
$results
을 인코딩한다. 그런 다음 해당 응답을 구문 분석
NSJSONSerialization
를 호출 스위프트 코드를 작성할 수 있습니다
{"name":"William"}
:
는 JSON은 모양을 장치에 전달했다. 예를 들어, 스위프트 3 : 스위프트 2
let url = URL(string: "http://example.com/test.php")!
let request = URLRequest(url: url)
// modify the request as necessary, if necessary
let task = URLSession.shared.dataTask(with: request) { data, response, error in
guard let data = data else {
print("request failed \(error)")
return
}
do {
if let json = try JSONSerialization.jsonObject(with: data) as? [String: String], let name = json["name"] {
print("name = \(name)") // if everything is good, you'll see "William"
}
} catch let parseError {
print("parsing error: \(parseError)")
let responseString = String(data: data, encoding: .utf8)
print("raw response: \(responseString)")
}
}
task.resume()
또는 :
let url = NSURL(string: "http://example.com/test.php")!
let request = NSMutableURLRequest(URL: url)
// modify the request as necessary, if necessary
let task = NSURLSession.sharedSession().dataTaskWithRequest(request) { data, response, error in
guard let data = data else {
print("request failed \(error)")
return
}
do {
if let json = try NSJSONSerialization.JSONObjectWithData(data, options: []) as? [String: String], let name = json["name"] {
print("name = \(name)") // if everything is good, you'll see "William"
}
} catch let parseError {
print("parsing error: \(parseError)")
let responseString = String(data: data, encoding: NSUTF8StringEncoding)
print("raw response: \(responseString)")
}
}
task.resume()
제안 중복 질문 (http://stackoverflow.com/questions/24016142/how-to-make-an- http-request-in-swift)는이 질문에 대답하지 않습니다. 그것은 단지 질문의 클라이언트 쪽 절반을 다룹니다. 이 질문에 의해 제기 된 흥미로운 이슈는'$ name'을 클라이언트 애플리케이션에 전달하기 위해 PHP에서해야 할 일입니다. 그리고 그것은 다른 질문에서 전혀 다루어지지 않습니다. – Rob