0

我正在使用 YQL 将数据发送回我正在开发的 iPhone 应用程序。我在 iphone 上有一个 JSON 解析器,在我的虚拟主机上有一个 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]”,我认为这搞砸了?

有任何想法吗?

4

1 回答 1

1

重要提示:除非您指定CURLOPT_RETURNTRANSFER选项,否则 cURL 将输出响应并返回true。这就是这里发生的情况:响应(这是一些 JSON)直接输出到浏览器,然后是echo json_encode(array(1))你在最后一行所做的。

要么不要尝试处理响应,要么使用CURLOPT_RETURNTRANSFER.

于 2010-10-25T14:28:41.840 回答