소개
주어진 작업에는 다음을 반환하는 URL에서 데이터를 검색하고 구문 분석하는 작업이 포함됩니다. JSONP(패딩이 있는 JSON) 응답. PHP는 이러한 응답을 효과적으로 처리할 수 있는 기능을 제공합니다.
PHP 구현
JSONP 응답은 JSON 페이로드를 감싸는 JavaScript 코드로 구성됩니다. 실제 JSON을 추출하려면 응답 시작 부분에서 콜백 함수 이름과 괄호를 제거하세요. 이후 PHP 함수 json_decode()를 사용하여 JSON을 연관 배열 또는 객체로 구문 분석할 수 있습니다.
JSONP 디코딩을 위한 사용자 정의 함수
편의를 위해 jsonp_decode()라는 사용자 정의 함수를 정의할 수 있습니다:
<code class="php">function jsonp_decode($jsonp, $assoc = false) { // PHP 5.3 adds depth as third parameter to json_decode if($jsonp[0] !== '[' && $jsonp[0] !== '{') { // we have JSONP $jsonp = substr($jsonp, strpos($jsonp, '(')); } return json_decode(trim($jsonp,'();'), $assoc); }</code>
사용
이 사용자 정의 함수를 사용하면 JSONP 데이터를 다음과 같이 추출할 수 있습니다.
<code class="php">$data = jsonp_decode($response);</code>
예
제공된 JSONP 응답 예를 고려하세요.
YAHOO.Finance.SymbolSuggest.ssCallback({"ResultSet":{"Query":"yahoo","Result":[{"symbol":"YHOO","name": "Yahoo! Inc.","exch": "NMS","type": "S","exchDisp":"NASDAQ","typeDisp":"Equity"}...]}})
jsonp_decode() 함수 사용:
<code class="php">$data = jsonp_decode($response); $query = $data['ResultSet']['Query']; foreach ($data['ResultSet']['Result'] as $result) { echo "Symbol: ".$result['symbol']." - Name: ".$result['name']." - Exchange: ".$result['exch']."\n"; }</code>
이 코드는 JSONP 응답에서 기호, 이름 및 교환 정보와 함께 쿼리 문자열을 추출합니다.
위 내용은 PHP에서 JSONP 결과 집합을 추출하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!