Мусор после JSON - PHP Array, проблема YQL - PullRequest
0 голосов
/ 25 октября 2010

Я использую YQL для отправки данных обратно в приложение для iPhone, которое я разрабатываю. У меня есть парсер JSON на iphone и страница PHP на моем веб-хосте.

Это PHP:

<?php
header('Content-type: application/json');    
$arr = array();
    $result = $_GET["q"];


$yql_base_url = "http://query.yahooapis.com/v1/public/yql";
$yql_query = "select * from search.web where query ='%s'"; //YQL query to retrieve search results
$value = "lindsay+lohan";

$yql_query_url = $yql_base_url . "?q=" . urlencode(sprintf($yql_query, $value)) . "&format=json";

$session = curl_init($yql_query_url);  
$json = curl_exec($session); 
curl_close($session);
$temp = json_decode($json);
$arr[] = $temp;
echo json_encode($arr);

?>

Когда я использую свое приложение для iphone и пытаюсь получить его, оно говорит: «Не удалось выполнить синтаксический анализ Json: мусор после JSON»

И если я запускаю PHP-файл в браузере, я вижу все данные JSON в порядке, но после него появляется «[1]», который, как мне кажется, облажается?

Есть идеи?

1 Ответ

1 голос
/ 25 октября 2010

Важно: , если вы не укажете опцию CURLOPT_RETURNTRANSFER, cURL выведет ответ и вернет true.Это то, что происходит здесь: ответ (который является некоторым JSON) выводится непосредственно в браузер, за которым следует echo json_encode(array(1)), который вы делаете в последней строке.или используйте CURLOPT_RETURNTRANSFER.

...