2010-10-25 35 views
0

我正在使用YQL將數據發送回正在開發的iPhone應用程序。我有iphone上的JSON解析器和我的虛擬主機上的PHP頁面。JSON之後的垃圾 - PHP Array問題YQL

這是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

重要提示:除非您指定CURLOPT_RETURNTRANSFER選項,否則cURL將輸出響應並返回true。這就是發生在這裏的情況:響應(這是一些JSON)直接輸出到瀏覽器,然後在最後一行輸入echo json_encode(array(1))

要麼不要試圖處理響應,或使用CURLOPT_RETURNTRANSFER