>  기사  >  백엔드 개발  >  jsonp_decode()를 사용하여 PHP에서 JSONP 결과 집합을 추출하는 방법은 무엇입니까?

jsonp_decode()를 사용하여 PHP에서 JSONP 결과 집합을 추출하는 방법은 무엇입니까?

Patricia Arquette
Patricia Arquette원래의
2024-10-30 11:10:53455검색

How to Extract JSONP Resultset in PHP with jsonp_decode()?

PHP에서 JSONP 결과 집합 추출: jsonp_decode()로 디코딩

제공한 것과 같은 URL에서 반환된 데이터에 액세스하려면 PHP의 jsonp_decode() 함수를 활용하여 JSONP 결과 집합을 추출할 수 있습니다. JSONP는 JavaScript 함수 호출 내에 JSON 데이터를 포함하는 형식입니다.

구현:

  1. 함수 이름 제거: JSON 데이터를 둘러싸는 함수 이름(및 괄호).
  2. jsonp_decode() 사용 함수: jsonp_decode()를 사용하여 추출된 JSON 데이터를 구문 분석합니다. 구문은 다음과 같습니다.

    <code class="php">$data = jsonp_decode($jsonString, $assoc = false);</code>

사용자 정의 jsonp_decode() 함수:

다음 사용자 정의 jsonp_decode() 함수는 JSONP 응답을 처리할 수 있습니다.

<code class="php">function jsonp_decode($jsonp, $assoc = false) { 
    if($jsonp[0] !== '[' &amp;&amp; $jsonp[0] !== '{') { // we have JSONP
       $jsonp = substr($jsonp, strpos($jsonp, '('));
    }
    return json_decode(trim($jsonp,'();'), $assoc);
}</code>

사용법:

<code class="php">$yahooSS = "http://d.yimg.com/autoc.finance.yahoo.com/autoc?query=yahoo&amp;callback=YAHOO.Finance.SymbolSuggest.ssCallback";

$yss = fopen($yahooSS,"r");
$data = jsonp_decode($response);

// Accessing the result 
foreach ($data->ResultSet->Result as $result) {
    echo $result->symbol . " - " . $result->name . "\n";
}</code>

DEMO:

이 예에서는 제안된 기호를 검색하고 표시하는 방법을 보여줍니다. Yahoo Finance Symbol Suggest API의 이름:

<code class="php"><?php

// Get JSONP response
$yahooSS = "http://d.yimg.com/autoc.finance.yahoo.com/autoc?query=yahoo&callback=YAHOO.Finance.SymbolSuggest.ssCallback";
$result = file_get_contents($yahooSS);

// Decode JSONP
$data = jsonp_decode($result);

// Process results
echo "<table>";
echo "<tr><th>Symbol</th><th>Name</th></tr>";
foreach ($data->ResultSet->Result as $result) {
    echo "<tr><td>" . $result->symbol . "</td><td>" . $result->name . "</td></tr>";
}
echo "</table>";

?></code>

위 내용은 jsonp_decode()를 사용하여 PHP에서 JSONP 결과 집합을 추출하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.