2010-10-25 17 views
0

J'utilise YQL pour envoyer des données à une application iPhone que je développe. J'ai un analyseur JSON sur l'iphone et une page PHP sur mon hébergeur.Garbage after JSON - Problème de tableau PHP YQL

C'est le 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); 

>

Quand j'utiliser mon application iPhone et tenter de le récupérer, il dit "Json parse failed: Garbage après JSON"?

Et si je lance le fichier PHP dans un navigateur, je vois bien toutes les données JSON mais après il y a "[1]", qui est en train de tout foirer je pense?

Des idées?

Répondre

1

Important: sauf si vous spécifiez l'option CURLOPT_RETURNTRANSFER, cURL sortie sera la réponse et de true. C'est ce qui se passe ici: la réponse (qui est un peu JSON) est sortie directement dans le navigateur, suivie par la echo json_encode(array(1)) que vous faites sur la dernière ligne.

N'essayez pas de traiter la réponse ou utilisez CURLOPT_RETURNTRANSFER.